From Badge-Scan Export to a Ranked Outreach Queue
You can take a raw registrant CSV and produce a deduped, ICP-filtered, contact-resolved queue ranked by fit and intent with a count at every stage.
Key takeaways
- The contactable-record filter, not the ICP filter, is usually the biggest drop: with B2B appends resolving 25 to 60%, up to three-quarters of rows can fail enrichment before fit is ever judged.
- Ranking is a race against a measured decay curve: reply-rate index falls from 92 at 24 hours to 47 by 72 hours, roughly halving in two days, so same-day rows jump the queue over higher-fit but slower ones.
- Rigid title strings manufacture false scarcity: Refolk's index held 389 US Director-level RevOps people, yet an exact 'VP Revenue Operations' query at VP seniority returned 0.
- US Director-level RevOps outnumber the UK 3.0x and cluster in New York, Austin, and San Francisco, so route territory by supply concentration before a single email sends.
- Compliance is a routing rule, not a footer: GDPR demands immediate opt-out and documented legitimate interest while CAN-SPAM allows 10 days, so one queue needs two send policies split by geography.
- Up to 80% of trade show leads never receive meaningful follow-up, so a same-day queue is itself an edge over most competitors in the room.
You just got back from a show with a CSV. It has a few hundred rows across dozens of companies, some emails, some blanks, some fields in the wrong columns, and a decay clock already running against you. This guide is for founders selling their own product, account executives, SDR leads, and partnerships teams who need to turn that artifact into a ranked, safe-to-send outreach queue before the momentum fades. It carries one real list through resolution, dedup, fit-match, and ranking with the counts shown at each fork, including the wrong turns.
Most published follow-up advice starts from a clean ICP or a single named account. That is not what you hold. You hold a messy, multi-company registrant export, and the interesting work is the funnel math: how many rows survive each stage, which stage does the real damage, and how to defend the final number to whoever asks why the queue is smaller than the badge count.
What a badge-scan export actually contains
A registrant or badge-scan export reliably carries identity and event context, and reliably lacks verified contact and firmographics. That gap is the whole job.
Badge-scan and registrant exports from platforms like Cvent, Whova, and ATIV EventPilot typically carry full name, company, job title, ticket or attendee type, role, a unique QR or barcode value, and often email and phone. What they miss or corrupt is the part you actually send against: verified business email, direct dial, firmographics, and current-employer confirmation.
Several conditions degrade the data before you touch it. Registrants who used personal rather than business emails, small businesses with thin online presence, self-employed individuals, badges that belong to event staff, sprawling sub-company networks, and security-sensitive industries all resolve poorly. And column-shift corruption is real and common: raw badge CSVs silently place email in the last-name field or company in the title field, so a row that looks clean is not.
The practical read: treat the export as a list of identities to resolve, not a list of contacts to mail. Everything downstream is about converting identity into a deliverable, current, compliant, ranked contact.
The funnel and where it actually leaks
A single canonical drop-off percentage for event lists is not established publicly, so build your funnel from your own counts and label the illustrative stages as illustrative. What is established is which stage leaks most.
The biggest drop is usually the contactable-record filter, not the ICP filter. With B2B deliverable appends resolving at 25 to 60%, up to three-quarters of rows can fail enrichment before fit is ever judged. So when your final queue looks thin, suspect data resolution first and targeting second. The two are easy to confuse and expensive to confuse.
Here is the worked example this guide follows. I start with a raw export of 500 badge scans from a single B2B software conference. The counts below are illustrative, derived from the published match-rate and follow-up bands in the dossier, not a benchmark you should quote as fact. The point is the shape and the arithmetic, which you can reproduce on your own list.
One 500-row attendee export through the queue
- 500Raw scans
immutable original logged
- 430Deduped
email-first, then name+company fuzzy
- 215Contactable
~50% deliverable append
- 120ICP fit
seniority + keyword families
- 108Safe to send
compliance gate, geo-split
Read the funnel as diagnosis. Dedup took 70 rows, a normal 14% for a multi-day show where people get scanned twice. Enrichment halved the survivors, which is the single largest cut and sits squarely in the published 25 to 60% band. The ICP filter then dropped fewer rows than enrichment did, because a conference audience is pre-qualified: 81% of trade show attendees have buying authority and 67% are net-new prospects. The compliance gate trims a handful more. If your enrichment stage is the leak, no amount of tighter targeting fixes it.
The decay clock that sets your ranking
Ranking event leads is a race against a measured decay curve, not a matter of preference. Reply rates fall fast enough that a slower, higher-fit row can be worth less than a faster, lower-fit one.
The dossier's clearest evidence is a reply-rate index tracked across BoothMaven customers at North American trade shows, with same-day set to 100. It falls to 92 within 24 hours, then collapses to 47 by 48 to 72 hours, roughly halving in two days.
| Timing after show close | Reply-rate index |
|---|---|
| Same day | 100 |
| Within 24h | 92 |
| 48 to 72h | 47 |
| 4 to 7 days | 31 |
| 8 to 14 days | 18 |
Two consequences. First, the window is 24 to 48 hours; leads followed up within 7 to 10 days convert to opportunities at 20 to 30%, but at 5-plus days response rate falls to 2 to 5%, at which point you are cold-emailing a person you already paid to meet in person. Second, ranking must let a hot same-day row jump ahead of a higher-fit but slower row, because the curve halves faster than any fit advantage compounds.
The reply-rate index halves in two days, so speed is a scoring input, not a nicety.
The payoff for moving fast is real: it takes about 3.5 sales calls to close a qualified trade show lead versus 4.5 for a cold lead. You bought that advantage with the booth fee. The decay curve is how you keep it.
Enrichment: what resolves and what lies
Enrichment converts identity into a deliverable contact, and it is where you should expect the honest majority of your rows to fall away. Plan the whole queue around the match rate, not the raw count.
The bands vary by source and method. The table below is built from the vendor figures in the dossier, described abstractly because the method matters more than the name.
| Source | Method | Match rate |
|---|---|---|
| Deliverable B2B append | name + company | 25 to 60% |
| Domain + name email | single provider | 50 to 70% |
| Business append | general | 10 to 30% |
| General enrichment | multi-field | 40 to 80% |
Two rules follow from this table. A vendor quoting 90% is counting matches, not deliverable matches, so verify deliverability after the append and track bounce rate. And a multi-provider waterfall lifts match rates 20 to 40% over a single provider, which is the cheapest way to move the biggest leaking stage.
There is a real ordering fork here. Some teams enrich first, then dedup on the enriched identity, because a verified email is the best dedup key. Others dedup before any sync to avoid paying to enrich duplicate rows. Both are defensible. Pick one, document which, and keep the choice consistent across shows so your stage counts stay comparable.
Before enrichment, resolve stale employers. Average tenure at high-growth firms is about two years, so the company on the badge is often last quarter's job. Enrichment tools flag when a contact is no longer at a company; CRM practice is to keep the old record, mark it "No Longer At Company," and create a new record at the current employer. A champion who moved is not a dead lead, it is a job-change trigger at a new account.
This resolve-and-find-the-mover step is exactly where a plain-English search beats a rigid append. Instead of guessing which badge companies went stale, you can ask directly.
Refolk resolves an identity to a current, reachable person across public LinkedIn, the public GitHub graph, and the open web, which is the friction this stage otherwise imposes one row at a time.
Fit and intent: scoring without manufacturing scarcity
Score each row on two axes: a fit score from firmographics and persona, and an intent score from what the person actually did at the event. A common split caps fit at 50 and intent at 50, then routes once the combined total crosses your threshold.
Event data is unusually rich on the intent axis because it fuses fit and intent in a single hour. One prospect can visit the booth, request a demo, exchange a card, and book a follow-up in sixty minutes, giving you a complete fit-and-intent profile that a digital lead never hands over. That is why event leads justify a lower qualification threshold than digital ones.
Weight the intent signals from weakest to strongest. A published model gives concrete numbers you can adopt directly.
| Intent signal | Published weight | What it proves |
|---|---|---|
| Registrant only, never logged in | near zero | intent to attend, not to buy |
| Badge scan at booth | +20 | physical presence and mild interest |
| Q&A question asked | +15 | topic-specific engagement |
| Session or workshop attended | +30 | sustained, self-selected interest |
| Post-event follow-up engagement | +15 | active continuation |
The gap between a registrant-only no-show and a session attendee is the single most useful distinction on the list, and a traditional attendee export flattens it: both appear identical. Separate registrant-only from badge-scanned from session-attended before you score, or a registered no-show will score like a booth visitor.
On the fit axis, the failure to avoid is rigid title matching. Exact-string title filters manufacture false scarcity. In Refolk's index, an exact "VP Revenue Operations" query at VP seniority returned 0, while Director-level Revenue Operations in the US returned 389 real people. The same population hides behind variant titles, so filter on seniority plus keyword families, never one literal string.
Supply concentration also belongs in scoring, because it reshapes territory before a single email sends. US Director-level RevOps outnumber the UK 3.0x, which changes how you route the same job title across two geographies.
| Metric | United States | United Kingdom |
|---|---|---|
| Director-level RevOps count | 389 | 130 |
| Supply ratio (derived) | 3.0x | 1.0x |
| Top hub | New York / Austin | London |
A US conference list will over-index New York, Austin, and San Francisco; a UK list will over-index London. Knowing that before you sequence lets you set realistic per-territory targets instead of expecting UK volume to match US volume.
The procedure, with a count at every stage
Run the export through nine stages in order, logging the row count and drop at each so the final number is defensible. Owners and rough times are given so you can staff it against the 24-hour clock.
Attendee export to ranked queue
- Freeze and back up the raw exportSave the untouched CSV, record the row count, and check for column-shift corruption. Keep an immutable original plus a working copy with the raw count logged. (~10 min)
- Normalize and standardize fieldsConsolidate into one schema with standardized event name, lead source, company, title, and conversation summary, one row per scan. (~30 min)
- DeduplicateMatch on verified email first, then name-plus-company fuzzy match, and record the deduped count and drop percentage. (~20 min)
- Resolve to current employerReconcile misspelled, stale, and sub-brand company names against public profiles and job-change data, flagging movers. (~30 to 60 min)
- Enrich and contact-resolveAppend verified business email, phone, and firmographics in a batch, expecting 25 to 70% to resolve, and log the deliverable match rate. (batch)
- Apply the ICP fit filterFilter on firmographics and persona using seniority plus keyword families, then log the fit-qualified count and drop. (~30 min)
- Score intent and rankLayer intent weights on top of fit so demo request beats session attended beats booth scan beats registrant-only, producing one sortable score per row. (~30 min)
- Run the compliance gateConfirm documented source, role relevance, opt-out, postal address, and no prior unsubscribe, segmented by geography, and set a safe-to-send flag. (~15 min)
- Queue against the clockRank so hot, contactable, compliant rows send same-day while the decay curve is steep. (immediate)
Log every stage in one place, because the counts are your defense. When someone asks why 500 scans became a 108-row queue, you point to the 50% enrichment resolution, not a vague claim about quality.
The count you carry forward
- Rawlog the immutable count
- Dedupedrecord drop from duplicate scans
- Contactablerecord deliverable match rate
- Fit + intentrecord score distribution
- Safe to sendrecord geo split and suppressions
Compliance is a routing rule, not a footer
A row is safe to send when its source is documented, the contact is relevant to their role, a postal address and one-click opt-out are present, headers are not deceptive, and no prior opt-out exists. Because the legal standard differs by recipient geography, the same queue needs two send policies.
Conference lists sit in a defensible zone. Industry conference attendee lists whose data sharing is covered in the event's privacy policy are legitimate sources for building prospect lists, because you are not obtaining data through deception or from private sources. For EU and UK recipients, GDPR usually leans on legitimate interest: you can send without prior consent if the outreach is relevant to the recipient's professional role, you document a genuine business purpose, you are transparent about data use, and you offer easy opt-out.
The split that matters operationally is timing. GDPR requires immediate opt-out processing and a documented legal basis; CAN-SPAM in the US allows emailing anyone unless they opt out and lets you honor opt-outs within 10 business days. So segment by recipient geography and apply the stricter standard to EU and UK rows. Treating a US opt-out-only policy as sufficient for an EU contact is a false-safe, and the downside is asymmetric: CAN-SPAM fines reach up to $51,744 per non-compliant email, while GDPR fines reach up to €20 million or 4% of global revenue.
recipient_geo: US | EU/UK # sets which opt-out standard applies source_documented: yes/no # event privacy policy covers data sharing role_relevant: yes/no # outreach matches their professional role postal_address_present: yes/no # required for both regimes opt_out_present: yes/no # one-click; immediate for EU/UK, 10 days US prior_optout_checked: yes/no # suppress if previously unsubscribed headers_truthful: yes/no # no deceptive from/subject lines safe_to_send: yes/no # true only if all above pass
Set every flag before a row is eligible to send. Split the geography check first; it changes the opt-out rule.
How this goes wrong
The failure modes below are the highest-value part of this guide, because each produces a queue that looks fine and is not. For each, I give the false positive it creates and the check that catches it.
- Column-shift corruption. Raw badge CSVs put email in the last-name field and company in the title field. The false positive is a "clean" import that scores personal provinces as companies. Check by eyeballing ten random rows against the QR source before enriching.
- Match-rate inflation. A vendor quoting 90% is counting matches, not deliverable ones. The false positive is a full-looking email column that hard-bounces. Check by verifying deliverability post-append and tracking bounce rate.
- Wrong-person append. Loose matching on name plus city hands you a different person's email. Check by requiring company-domain agreement, not just name similarity.
- Stale employer. Two-year average tenure means the badge company is often last quarter's job. The false positive is outreach to a champion who already left. Check by running job-change flags and re-resolving before you sequence.
- Registrant-only mistaken for intent. A registered no-show scores like a booth visitor if the model only counts "attended event." Check by separating registrant-only from badge-scanned and session-attended before scoring.
- Rigid title filter drops real fit. Exact-string title filters return zero where variant titles exist; the "VP Revenue Operations" query returning 0 is the proof. Check by filtering on seniority plus keyword families, not one literal string.
- Compliance false-safe. A US-style opt-out-only send to an EU contact breaches GDPR. Check by segmenting on recipient geography and applying the stricter standard.
The pattern across all seven: a stage that silently passes bad rows is worse than one that visibly drops them. Your logged counts are the instrument that makes silent failures visible.
Before you hit send
Run this checklist against the queue, not against the process. Every item is something you can verify by looking at the final file.
Queue-ready checklist
- The raw row count is logged and the original CSV is untouched and backed up.
- Ten random rows were checked against the QR source for column-shift before enrichment.
- Dedup ran on email first, then name+company, with the drop percentage recorded.
- Every surviving row maps to a verified current employer, with movers flagged.
- The deliverable match rate is logged and bounces were verified, not assumed.
- The ICP filter used seniority plus keyword families, not a single literal title string.
- Registrant-only rows are separated from badge-scanned and session-attended before scoring.
- Each row carries one combined fit-plus-intent score and is sortable.
- Every row has a safe-to-send flag, with EU/UK rows held to the immediate opt-out standard.
- The top same-day segment is dispatched within 24 hours of show close.
Keeping the queue current between shows
The queue is not a one-time artifact; it decays on two clocks and both are re-checkable. The reply-rate clock decays in hours, and the employer clock decays over roughly two years of average tenure. Build the re-check into your cadence rather than treating the export as finished.
For the reply clock, dispatch the top segment same-day and re-rank the remainder every morning of the follow-up window, because a row that was 48 hours cold yesterday is worse today. For the employer clock, re-resolve stale companies before every send campaign and treat a champion's move as a fresh trigger at the new account rather than a lost row. A plain-English search for the people who moved off your list, at their new employer, turns the weakest part of the export into new pipeline.
Finally, keep your stage counts across shows so you can tell whether a thin queue is a data problem or a targeting problem. If enrichment resolution keeps landing at the bottom of the 25 to 60% band, add a second provider before you touch the ICP filter, because the waterfall lift of 20 to 40% moves the leak you actually have.
Questions practitioners ask
How many days do I have to follow up on conference leads before it stops working?
The consensus window is 24 to 48 hours with steep decay after. On the BoothMaven reply-rate index, same-day sits at 100, within 24 hours at 92, but 48 to 72 hours later drops to 47, roughly halving in two days. By 5-plus days response rate falls to 2 to 5%, which means you are cold-emailing a person you already paid to meet in person. Rank so the hottest rows send same-day.
What match rate should I expect when I enrich an event attendee list?
Expect a wide, honest band of 25 to 60% for deliverable B2B appends from a name-plus-company row, or 50 to 70% appending email from company domain plus name with a single provider. A multi-provider waterfall lifts this 20 to 40% over one provider. Anyone promising 90% is counting matches, not deliverable matches, so verify deliverability and track bounce rate after the append.
Which stage of the funnel drops the most rows?
Usually the contactable-record filter, not the ICP filter. With B2B appends resolving at 25 to 60%, up to three-quarters of rows can fail enrichment before you ever judge fit. That is why a small final queue often reflects data resolution rather than poor targeting. Log the count and drop at every stage so you can tell which one is actually costing you.
Can I legally cold-email conference attendees in the EU?
Usually yes, under legitimate interest, if the outreach is relevant to the recipient's professional role, you can document a genuine business purpose, you offer easy opt-out, and you are transparent about data use. Industry conference attendee lists whose data sharing is covered in the event's privacy policy sit in a defensible zone. GDPR requires immediate opt-out; CAN-SPAM in the US allows honoring opt-outs within 10 days, so segment by geography.
Why did my exact title filter return nobody who clearly exists?
Rigid title strings manufacture false scarcity. In Refolk's index, an exact 'VP Revenue Operations' query at VP seniority returned 0, while Director-level RevOps in the US returned 389 real people. The same population hides behind variant titles. Filter on seniority plus keyword families rather than one literal string, and re-run to confirm the population reappears.
Try it on your own search
Stop building boolean strings. Just describe the person.
Type one sentence and I plan the search, read GitHub, public LinkedIn and Crunchbase records, and the open web live, then hand back a ranked shortlist with the reasoning behind every name. No filters to learn, no export to clean up, no sales call to sit through.
- One sentence in, a ranked shortlist out. No boolean, no filters, no seat to buy.
- Read live at search time, not from a database that went stale last quarter.
- Watch every step as it runs, and see why each name made the list.
- Staff backend engineers in NYC who shipped Rust in production
- Series A fintechs in SF under 50 people, growing headcount this year
- Maintainers of fast-growing Rust web frameworks on GitHub
500 free credits on sign-up. No card, no demo call. See real searches.