HEINOUX Journal Portfolio

Journal

I made my pipeline smaller on purpose

A broken register made me read my pipeline line by line for the first time in weeks. I closed one deal, parked another and pushed out a third. The number got smaller and the forecast got honest.

By · · 5 min read

I made my pipeline smaller on purpose

Yesterday I removed more from my pipeline than I added to it, and it was the most useful hour I have spent on sales in a month.

I did not plan to. I only opened the register because something had broken.

The break

My follow-up process writes to a register of open deals. Every week it reads the file, works out who is owed a nudge, and drafts the nudges. Last week one of those runs wrote the file back in a state it had held roughly ten days earlier. Several days of reconciliation went with it, along with three rows.

Nothing alerted. The process reported success, because from where it stands it did succeed: it opened a file, it wrote a file, it exited cleanly. The file it wrote was just wrong.

I found it because a total did not match what I remembered. That is the whole detection mechanism. My memory.

I have written before about building a watcher that told me nothing and about the day my own automation quietly missed a day. This is the third variation on the same theme, and I am starting to think the theme is the point rather than the incidents. Every one of them is a system that cannot tell the difference between finishing and succeeding.

So I rebuilt the register from a backup and the underlying evidence. That took a while and it is not the interesting part.

The part I did not expect

Once I was reading the register properly, line by line, rather than glancing at a total, I could not un-see how much of it was not real.

There was a deal I had been carrying for weeks that was not going to happen. I knew it was not going to happen. It stayed on the list because removing it felt like giving up on it, and because the list looked better with it there.

There was another one where the client had genuinely gone quiet for reasons that had nothing to do with me, and where the honest position was not "chase harder" but "this is parked, and there is no date". I had been treating it as active because active is a nicer word.

There was a third where the client had told me plainly that they would come back at the end of the month. I had a follow-up scheduled for well before then. Not because it would help. Because following up is what you do, and an empty week feels like inactivity.

By the end I had closed one outright, parked one open-ended with no chase date, and moved the third out to the date the client had actually named. Three rows removed from the live pipeline. Nothing added.

The number at the bottom got smaller. The pipeline got more honest.

Why the smaller number did not scare me

A month ago it would have. What changed is that I had just watched several deals close that I had done the work on weeks and months earlier.

That taught me something I had heard often enough and never really believed. The revenue that arrives this week was set in motion long before this week. Nothing I did on Monday produced it. It came from meetings I took when nothing seemed to be happening, follow-ups I sent that got no reply, conversations I had with people who were not ready.

Which means the current size of the pipeline is a very poor measure of whether the work is going well. It is a lagging picture, and it is easy to inflate. What actually predicts the next quarter is whether I am still having new conversations, not whether the spreadsheet reads high.

Once you believe that, deleting a dead row costs nothing. It was never going to become money. It was only ever going to make me feel better while making my forecasting worse.

I wrote about a version of this when I stopped playing the numbers game with partnerships. Same lesson, different column.

The uncomfortable connection

The two halves of yesterday are the same problem.

The register broke and nothing noticed, because the only check was whether the process completed. The pipeline was inflated and nothing noticed, because the only check was whether each row was individually defensible. Every one of those dead deals had a reason to be there. I could have argued for any of them.

In both cases the missing thing was not a rule. It was somebody standing back and asking whether the whole picture was true.

I do not have a clean fix for that yet. A total that gets checked against something external would have caught the register. A monthly pass where every row has to justify its own presence, with the default being removal rather than retention, would have caught the pipeline. Both of those are just scheduled scepticism, which is a weak answer, but a weak answer that runs beats a strong answer that does not.

What I would tell someone doing the same thing

Look at your pipeline as a list, not as a total. The total is designed to reassure you and it is very good at its job.

Then go row by row and ask one question about each: if this never closes, would I be surprised? Not disappointed. Surprised. Anything you would not be surprised to lose is not a forecast, it is a hope with a rand value attached.

Take those off. The list will look worse. Your read on the next three months will get considerably better, and you will stop spending Monday mornings following up with people who already told you when to call.

The work you did in June is what pays in August. Protect the time to keep doing it, and stop guarding a number that was never going to arrive.

Want this kind of build for your business?

I build AI systems, custom company dashboards and automation for growing businesses.

Get your autopsy Email me