Revenue OptimizationLead Recovery

Case Study: How Fixing Three Routing Gaps Grew Revenue Per Lead 34%

Case study diagram: three routing gaps (unchecked API responses, rejected leads that just stopped, static routing) fixed to grow revenue per lead 34%, with the three fixes (real response validation, automatic replay on rejection, highest-bidder routing)

Most lead distribution setups don’t fail because of bad leads or a weak buyer list. They fail quietly, in the gap between “the lead was sent” and “the lead was actually paid for and worked.” One regional lead brokerage we worked with had exactly that gap, in three specific places, and closing them grew revenue per lead 34%, with far fewer leads lost along the way.

The Setup

The brokerage was generating a healthy volume of leads across a handful of verticals and selling into a buyer network of a dozen or so accounts. On paper, the pipeline looked fine: leads went out, buyers received them, invoices went out at the end of the month. The problem wasn’t visible in any single dashboard, it only showed up as a gap between leads acquired and revenue actually collected.

Three specific blind spots were responsible for most of it.

1. API responses weren’t actually being checked

Leads were posted to buyer endpoints, and a response came back, but nothing in the pipeline read that response beyond confirming the request didn’t error out. A buyer’s API can return a technically successful response while rejecting the lead in the payload itself, wrong field, capacity reached mid-request, a compliance flag. Without parsing that response body, those leads were logged as delivered and counted toward revenue that was never actually going to arrive. The gap between “sent” and “accepted” was invisible until reconciliation, weeks later, by which point there was nothing left to do about it.

2. Rejected leads just stopped

When a buyer did reject a lead outright, there was no next step. No fallback buyer, no retry, no second attempt, the lead’s story ended at the first no. Since most rejections have nothing to do with lead quality (a buyer at cap, a filter mismatch, a timeout), a large share of those leads were still sellable, just not to that particular buyer at that particular moment. Every one of them represented cost already paid to acquire, and zero revenue recovered.

3. Delivery was static, not competitive

Leads were routed by fixed rule: this vertical goes to this buyer. It worked, in the sense that leads got delivered, but it meant every lead was sold to whichever buyer was first in line rather than whoever valued it most that day. Buyer demand and pricing shift constantly, a lead worth routing to Buyer A on Monday might be worth more to Buyer B by Wednesday. Static routing had no way to capture that difference, so leads were consistently sold below what the market would have actually paid.

See exactly what's happening to every lead after it's sent. Try Vertikl free for 14 days.

What Changed

None of the fixes required new lead sources or a new buyer network, the volume and the buyers stayed the same. What changed was what happened to each lead between capture and close:

  • Real response validation. Every buyer API response is now parsed, not just checked for a successful status code, so a lead is only counted as sold when the buyer’s own response confirms it.
  • Automatic replay on rejection. A lead rejected by one buyer is immediately routed to the next eligible buyer in real time, instead of the transaction simply ending.
  • Real-time highest-bidder routing. Eligible buyers are pinged for each lead, and it’s posted to whoever’s willing to pay the most for it right then, instead of a fixed, static assignment.

The Result

With those three gaps closed on the same lead volume and the same buyer roster, revenue per lead grew 34%, and the share of leads lost to silent rejection or a single failed delivery attempt dropped sharply. None of it came from generating more leads, it came from recovering leads that were already being paid for instead of letting them leak out silently, and from making sure every lead that did sell went to whoever valued it most.

The pattern holds beyond this one case: if you can’t say with certainty what happened to every lead after it left your system, whether it was truly accepted, retried after a rejection, and sold at the best available price, there’s very likely revenue sitting in that uncertainty, and leads quietly going nowhere.

Stop guessing what happened after a lead was sent. Get started with Vertikl.

Frequently Asked Questions

What does it mean to not verify API responses from a buyer?

It means treating a lead as sold the moment it's posted, without checking what the buyer's API actually returned. A 200 status code doesn't guarantee acceptance, buyers can return a success response with a rejection reason in the payload, or accept-then-reverse a lead shortly after. If nothing reads that response body, leads get marked sold and billed internally when the buyer never actually took them.

Why does replaying rejected leads matter so much?

Because a rejection is rarely about the lead being bad, it's usually about that specific buyer, at that specific moment (at cap, filter mismatch, timeout). A lead that's already been captured and paid for still has value if the routing logic tries the next eligible buyer immediately instead of letting the transaction end at the first no.

What's the difference between static routing and highest-bidder routing?

Static routing sends every lead matching a set of criteria to the same buyer, regardless of what other buyers would pay for it that day. Highest-bidder (ping-post) routing pings eligible buyers in real time, compares what they're willing to pay for that specific lead, and posts it to whoever bids highest. The same lead can be worth meaningfully more or less depending on which buyer receives it.

How long did it take to see results after switching?

Most of the gain showed up within the first billing cycle. Fixing API response validation and adding replay logic close revenue leaks that were already happening on existing lead volume, they don't require new traffic or new buyers to show up, so the effect is visible almost immediately.

Do these three fixes require replacing an existing buyer network?

No. All three problems are about how leads are validated and routed, not who the buyers are. The existing buyer roster stayed the same; what changed was whether each lead was checked, retried, and priced correctly across that same roster.

Ready to put this into practice?

See how Vertikl routes leads to the right buyer in real time, with fallback and conversion tracking built in.

Would you like a personalized
demo of Vertikl?
Book a Demo?