The quarter we could see everything and act on nothing
I'll start with the embarrassing part, because it's the useful part.
We'd instrumented our own funnel about as well as a team can. De-anonymized website traffic. Enrichment on the accounts that mattered. Product events streaming out of the app. An intent feed. A Slack channel where all of it landed in something close to real time. By any measure of detection, our stack was good. We could see intent that most teams never catch.
Pipeline didn't move in proportion to any of that. For a while I blamed the data: noisy, false positives, the scoring was off. Then I sat down and watched what actually happened to one good signal, start to finish, and stopped blaming the data.
Watch one signal travel
The signal fires at 10:02. A real one. An account we'd been courting opens the pricing page, comes back twice inside an hour, and a second person from the same company shows up behind them. The intent feed catches it. The Slack channel lights up. So far the system is working exactly as designed.
Then it waits. Someone notices the alert around 11:40, if they happen to be watching the channel. It gets an emoji. It comes up in the next morning's standup. Someone agrees to "own" it. By the time a credible, relevant message actually reaches that account, it's Thursday. The moment that produced the signal is three days gone. The person who looked at our pricing three times on Tuesday has moved on, gone quiet, or already talked to someone who answered first.
Tuesday 10:02. Freshness about 100%. The signal is worth the most it will ever be worth.
Nobody in that chain did anything wrong. Each person was busy with work that was also real. The failure was structural, not personal. We'd built a system that was excellent at producing signals and quietly terrible at conducting them.
Intent is perishable. We've known that for fifteen years.
Here's what makes this worse than a normal operational miss: none of it is news.
Answer in 5 minutes, not 30: about 21x more likely to qualify the lead.
MIT, 2007The average company takes 42 hours to reply. Nearly 1 in 4 never reply at all.
HBR audit of 2,000+ companies, 2011You respond in 5 minutes About 21x more likely to qualify than waiting 30 minutes (MIT, 2007).
Curve is illustrative. The two figures are from the cited studies.
The MIT Lead Response Management study found that contacting a web lead within five minutes instead of thirty makes you about twenty-one times more likely to qualify it. Harvard Business Review's audit of more than two thousand companies found that responding within an hour made a firm roughly seven times more likely to qualify a lead than waiting just one hour longer, that the average company took forty-two hours to respond at all, and that almost a quarter never responded. Those studies are from 2007 and 2011.
So we've had fifteen years to absorb a simple fact: a buying signal isn't a durable statement about a company, it's a perishable statement about a moment. And most of us, myself included, went and built stacks that treat intent like a report to be reviewed on a cadence. The signal doesn't care about your standup schedule. It decays whether or not anyone is looking.
The one number we never measured
So we measured the thing the dashboards had never shown us.
Not how many signals we captured. Everyone can tell you that number, and it's the wrong one to be proud of. We measured the gap: the median time between a high-intent signal and a credible, relevant response, and the share of high-intent signals that got no response at all.
It's a cheap thing to instrument, and almost nobody runs it. Pick the definition of a high-intent signal your team already trusts. Log the timestamp when it fires. Log the timestamp when a real human action goes out the door because of it, an email a person would recognize as a response to them, not an automated drip that would've fired anyway. The median of that difference is your real time to action. The percentage of signals with no second timestamp at all is your leak.
// the number almost nobody measuresconst timeToAction = action.sentAt - signal.firedAt; // your real latencyconst health = report(highIntentSignals, { median: median(signals.map(timeToAction)), // not "how many" noResponseRate: signals.filter(s => !s.action).length / signals.length,});// a "response" is a human action a person would recognize,// not a drip that was going to send anyway.
We ran it on ourselves and the number was worse than anyone on the team had guessed. It usually is. And the act of measuring it changed our behavior faster than any new data source ever had, because you can't argue with your own median. If you do one thing after reading this, measure that gap before you buy anything else. It'll tell you more about the health of your go-to-market than another intent feed ever will.
You can't buy your way out of a handoff
Here's where I spent real money being wrong.
My instinct, and I think the industry's instinct, was that a gap this size had to mean we were missing a tool. So we bought tools. Each one was good at its job. Each one added another way to see.
But seeing was never our problem. The gap lived in the spaces between the tools. Detection in one system, scoring in a second, the actual outreach in a third, and a person stitching the three together by hand while the moment expired. Buying another detection product doesn't close that gap. It adds one more place to look and one more handoff to drop. We'd bought ourselves better eyes, over and over, and wondered why nothing moved faster. Eyes weren't the constraint. Hands were.
TRACE signal:acme.pricing_view_x310:02:11 detected intent_feed +0s10:02:13 scored enrichment +2s11:41:00 seen #signals (if a human looks) +1h 39mwed 0915 triaged standup: "who owns this?" +23hthu 1430 sent sequencer +3dx handoff enrichment to human: no owner, no retry, no SLA
At some point the arithmetic gets hard to ignore. You can keep buying better eyes, or you can build something with hands.
So we built one
So we built one. Not another dashboard, and not another feed. Something that watches the product, the site, and the systems of record together, scores intent against our own definition of a good account, and carries the moment into action inside a workflow that records every step, with a person setting the rules and keeping the final say where it matters. At Civic we build agents, so we built an agent for the job we couldn't buy our way out of.
We built it for ourselves first. We were the first team it ran for, which is the only honest way I know to ship something you intend to put in front of other people. It pulled our own time to action down from days to minutes, and it kept the receipts while it did it, so we could always answer why a given account got contacted on a given day. That last part turned out to matter as much as the speed.
It's no longer only for us, and it's close.
What comes next
I'm being deliberately light on it here, because next week I want to make the harder argument, the one I'm actually looking forward to writing: that the next dollar a growth team spends shouldn't buy another way to see. The category has spent years, and most of its budget, getting very good at watching. The edge has quietly moved to the teams that can act in the minute it still matters, and can stand behind what they did when someone asks later.
Everyone has signals now. The real question for the rest of this year is whether you can do anything with one before it goes cold. More on that, and more on what we've been building, next week.
If you're working on the gap between intent and action on your own team, I'd be glad to compare notes. You can reach us through civic.com.

