Seatext library / BotRefund evidence
How to Set a Lead Quality Threshold Beyond Cost: A Practical Framework
Set lead quality thresholds by scoring field validation, IP reputation, signup speed, on-page engagement, and CRM outcomes — not just cost per lead. Start with a baseline audit across placements, then define minimum scores...
✓ Built for advertisers who need clear, refund-ready traffic evidence.
Most teams optimize for cost per lead because it's easy to measure. But a cheap lead that never answers the phone, uses a fake email, or bounces in three seconds costs more in wasted sales time than a pricier lead that converts. The fix is a quality threshold: a minimum score a lead must hit before it enters your CRM or triggers a sales follow-up. That score combines technical signals (IP, device, form speed), behavioral signals (scroll depth, time on page, field corrections), and outcome signals (email deliverable, phone connects, sales disposition). Below is a step-by-step process to build and enforce that threshold.
Why cost per lead is the wrong north star
Cost per lead (CPL) tells you what you paid for a form fill. It says nothing about whether the person exists, intends to buy, or matches your ideal customer profile. A campaign can show a great CPL while feeding your sales team disconnected numbers, copied messages, or bot submissions that poison your Meta pixel and skew optimization. The source pack notes that Ads Manager may report a steady cost per lead while the sales team receives unreachable contacts or enquiries that never progress. Treating every unresponsive contact as fraud can make a team exclude a valuable audience, so you need evidence-based thresholds, not assumptions.
Step 1: Establish your quality baseline before setting any threshold
You cannot set a meaningful minimum until you know what "normal" looks like for your account. Pull the last 90 days of data and calculate these rates by campaign, placement, audience, creative, device, geography, and landing page:
- Landing-page sessions per click (click-to-session rate)
- Form starts per session
- Form completions per start
- Contactable leads per completion (email deliverable, phone connects)
- Verified leads per contactable (prospect confirms interest)
- Qualified opportunities per verified lead
- Revenue per qualified opportunity
Preserve the click identifier, campaign context, timestamp, URL parameters, CRM record, and any verification result before you change campaign settings. A sudden gap in one cluster — say, a placement with normal completion rates but zero phone connects — is more useful than a site-wide average.
Step 2: Choose the signals that will feed your score
Group signals into three layers. Each layer catches a different class of low-quality traffic.
Technical signals (available at or before form submit)
- IP reputation: data-center ranges, known VPN/proxy exits, previously flagged IPs
- Device fingerprint consistency: mismatched user-agent vs. screen resolution, missing browser APIs
- Form completion speed: submissions under a humanly possible threshold (e.g., <3 seconds for a 5-field form)
- Honeypot interaction: hidden field filled, trap link clicked
- Mouse/pointer behavior: linear paths, grid-aligned movement, absence of micro-tremor, superhuman click speed (<1ms)
Behavioral signals (require client-side observation)
- Scroll depth and dwell time on offer page
- Field corrections (backspacing, re-typing) — bots rarely correct
- Click path variety vs. uniform, scripted navigation
- Session duration distribution (too short, too long, or too uniform)
- Consent banner interaction (accepted, dismissed, ignored)
Outcome signals (post-submit, CRM-verified)
- Email deliverability (syntax, MX, catch-all, role accounts)
- Phone connectivity (valid format, carrier lookup, answered call)
- Duplicate details across submissions (same phone, email, address clusters)
- Sales dispositions: verified, contacted, qualified, disqualified, duplicate, invalid details, no response
Step 3: Weight signals and build a composite score
Assign points so the total is 100. A practical starting model:
| Layer | Signal | Weight | Pass threshold |
|---|---|---|---|
| Technical | IP reputation clean | 15 | Not in blocklist |
| Technical | Form speed > human minimum | 10 | >3 sec for 5 fields |
| Technical | No honeypot trigger | 10 | Zero hits |
| Technical | Pointer behavior human-like | 10 | Tremor present, non-linear |
| Behavioral | Scroll depth > 50% | 10 | Yes |
| Behavioral | Dwell time > 15 sec | 10 | Yes |
| Behavioral | Field corrections observed | 5 | At least one |
| Outcome | Email deliverable | 10 | Valid MX, not role/catch-all |
| Outcome | Phone connects | 10 | Answered or valid voicemail |
| Outcome | Sales disposition = qualified | 10 | Within 7 days |
Adjust weights to match your funnel. High-ticket B2B may weight outcome signals higher; e-commerce may rely more on technical + behavioral because the sale happens online.
Step 4: Define the acceptance threshold and routing rules
Pick a minimum composite score. Leads below it do not enter the standard sales queue. Example tiers:
- ≥80: Auto-assign to sales, count as qualified lead for platform optimization
- 60–79: Route to nurture sequence, require manual review before sales touch
- <60: Quarantine — log for audit, do not optimize for, do not pay commissions on
Feed the ≥80 tier back to Meta and Google as your conversion signal. This prevents pixel poisoning — where bots trigger conversion events and teach the algorithm to find more bots. The source pack emphasizes that when bots trigger conversion pixels, they poison Meta's machine learning systems to optimize for bots rather than real buyers.
Step 5: Implement the four-layer audit loop
The source pack outlines a four-layer audit you should run weekly or per cohort:
- Platform delivery: Compare reach, link clicks, landing-page views, placements, and spend. A cheap placement is not a win unless it produces contacts that can be reached and qualified.
- Landing-page evidence: Measure page loads, redirects, consent behavior, form start, form completion, time to completion, and meaningful engagement. Investigate click-to-session gaps (app browsers, tracking consent, slow loads, analytics config) before concluding it's bot traffic.
- Lead verification: Record email deliverability, phone connectivity, duplicate details, and prospect confirmation. Add qualification questions that reveal fit, not just extra fields that make the form longer.
- Sales outcome feedback: Give sales a small, mandatory set of dispositions: verified, contacted, qualified, disqualified, duplicate, invalid details, no response. Feed dispositions back to the scoring model monthly.
Step 6: Automate enforcement and refund evidence collection
Manual scoring doesn't scale. Deploy client-side detection that captures:
- Click IDs (GCLID, FBCLID) with behavioral evidence per session
- Video replay or event logs for disputed clicks
- Automated refund reports formatted for Google/Meta rep submission
The homepage notes that BotRefund captures click IDs with behavioral evidence and generates audit-ready refund dispute reports. Typical setup takes about one minute. The platform detects ghost clicks (activity without human intent sequence), honeypot interactions, robotic pointer paths, absence of human tremor, superhuman input speed, grid-aligned movement, static sessions, and unnatural session durations.
Key facts
| Metric | Detail | Source |
|---|---|---|
| Bot click share of ad budget | Up to 20% per BotRefund aggregated data | S2 |
| Refund success rate | 83% of customers successfully get a refund | S2 |
| Setup time | ~1 minute to add to website | S2 |
| Invalid traffic signals | IP, timing, session behavior, campaign patterns, CRM outcome | S1 |
| Audit layers | Platform delivery, landing-page evidence, lead verification, sales outcome | S5 |
| Meta Audience Network risk | High CTR, near-instant bounce, publisher bot clicks | S3 |
| Client-side vs server-side | Client-side catches advanced botnets server logs miss | S4 |
Common mistakes that undermine thresholds
- Setting the threshold once and forgetting it. Traffic mix shifts; re-calibrate monthly.
- Using only form-field length or required fields as quality proxy. Bots fill long forms fast; humans abandon them.
- Blocking entire audiences from small samples. Use enough volume to see a consistent pattern.
- Feeding all form fills to the pixel. Only send verified leads (≥80 score) as conversion events.
- Treating every bad lead as fraud. Low intent ≠ bot. Separate "wrong audience" from "non-human".
- Ignoring placement-level quality splits. Audience Network often differs sharply from Feed/Stories.
Limitations and when this approach does not apply
- Low-volume accounts (<50 leads/month) lack statistical power for reliable baselines. Use industry benchmarks cautiously and prioritize manual review.
- Pure e-commerce with instant purchase: lead scoring is irrelevant; optimize for ROAS directly with verified purchase events.
- Offline-heavy funnels (phone-only, walk-in): technical signals unavailable; rely on call tracking and CRM dispositions.
- Regulated industries with strict consent requirements: ensure behavioral tracking complies with local law before deploying client-side scripts.
Terminology
- Pixel poisoning: Bot-triggered conversion events that teach ad algorithms to target more bots.
- Click ID (GCLID/FBCLID): Unique parameter appended to landing-page URLs; ties a click to a session for attribution and refund claims.
- Honeypot: Hidden form field or link invisible to humans; any interaction flags a bot.
- Client-side detection: JavaScript running in the visitor's browser that observes mouse, scroll, timing, and DOM interactions.
- Server-side audit: Log analysis of IPs, headers, user-agents; misses browser-level behavior.
- Invalid activity credit: Google's automatic or claimed refund for clicks deemed non-genuine.
FAQ
What is a good starting threshold score?
Start at 70–75 for the "auto-accept" tier if you have 3+ months of baseline data. If you're new, set auto-accept at 80 and review the 60–79 bucket weekly until you have enough outcomes to calibrate.
How long before I see the threshold improve lead quality?
One full sales cycle. You need verified dispositions to know whether the score predicts qualification. Run the audit loop (Step 5) weekly; adjust weights monthly.
Do I need a separate tool, or can I build this in my CRM?
You can build scoring in a CRM with custom fields and workflows, but you'll miss technical and behavioral signals that require client-side observation (pointer tremor, honeypot, superhuman speed). A dedicated detection script fills that gap and supplies the evidence platforms require for refunds.
Will raising the threshold reduce my lead volume?
Yes, initially. But the leads you keep are contactable and qualified. The goal is lower cost per qualified lead, not lower cost per form fill. Track CPL and cost per qualified lead side by side.
How do I handle leads that score well technically but sales disqualifies them?
That's a targeting or offer problem, not a quality-threshold problem. Feed the "disqualified" disposition back to the model; if a placement consistently produces technically clean but commercially unfit leads, exclude the placement, not the scoring logic.
Can I use this threshold to claim ad-platform refunds?
Only for leads that fail technical signals (IP, speed, honeypot, pointer behavior) and have captured click IDs with behavioral evidence. Outcome signals (sales didn't close) don't qualify for refunds. The source pack notes Google and Meta refund policies cover invalid activity — automated tools, bots, accidental clicks — not low commercial intent.
What if my sales team refuses to log dispositions?
Make it mandatory and low-friction: a single dropdown with the seven dispositions, required before the lead can be moved to any other stage. No dispositions = no commission attribution for that lead.
Further reading and comparison sources
These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.
Learn more
Visit the website for more information.