A brand selling two thousand dollar shower systems through a big box retailer booked a paid consultation with me a few weeks ago. We had done the free thirty minute introduction earlier that same day, the one where everybody decides whether the other person is worth an hour. They booked the hour that afternoon. Three people from their marketing team, a screen share, and most of it spent digging around in their ad account and their events manager.
Here is what we found. They were running lead campaigns. The lead event was a button. Somebody had wired a custom event to the button on their site that sends a shopper over to the retailer’s product page, labeled it a lead, and pointed the campaigns at it. No form. No name, no email, no phone number. A click.
Meta did exactly what it was told. It went out and found people who like clicking buttons. It is very good at that. Their page view event was also firing twice, which is its own conversation.
Meanwhile the actual purchase happens on the retailer’s website, where you cannot put your pixel, and where nobody is going to let you. So the platform buying their traffic had no idea whether any of it turned into a two thousand dollar sale. Not a bad estimate. No idea at all.
The fix is not a setting. They get purchase data back from the retailer through their supply chain feed. That data can be pushed to Meta through the Conversions API so the platform finally learns which clicks became customers. Before any of that means anything, the product catalog has to be clean, because a SKU has to be the same string in three different places or nothing matches to anything. Three weeks of work. Week one is the catalog and the store cleanup, week two is the order pipeline with their programmer, week three is validating it and rebuilding the campaigns on top of data that is finally real.
I sent the scope, the rate and the contract on Monday afternoon. Their message that morning had said the urgency was high and asked what my schedule looked like that day.
By Monday night the scope had gotten smaller. Could we start with a capped technical discovery instead, just map the fields, hand our programmer a spec, and see if the matching works? Skip the catalog cleanup for now, save it for later. Skipping the catalog cleanup means the test comes back inconclusive and nobody can tell you why, which is the one outcome worse than not running it.
Tuesday it changed shape again. Three weeks was too long. Could we sprint it in a few days? I said I could clear my calendar, but the rate goes up because I would be moving paying work to do it. They came back that afternoon: they could not approve a higher rate, but they could dedicate more internal people. Could I direct their team while their developers executed?
That was already the plan. That is what the rate was for. Nobody was asking me to write the code.
Underneath every one of those messages was the same belief, and it is the most common belief I run into. They knew they had a problem. They were fairly sure I knew how to solve it. What they were not sold on was paying for my hours, because they had a marketing director, an analyst, an intern, a programmer and a developer already on payroll. All they needed from me was a little guidance and their people could execute.
I understand the appeal. Guidance feels cheap and hours feel expensive. The trouble is that the same fully staffed team, with all those people in the building, had already shipped a lead event that was a button. Not because anybody there was careless. Because knowing which event to fire, what data has to ride along with it, and what the system actually does with that signal once it arrives is a specific body of knowledge, and you get it from living in ad accounts for years, not from a briefing. Their programmer can build any pipeline you describe to him. He cannot tell you whether the thing you are describing will teach the algorithm anything, and neither can the person writing the description unless that person has watched it fail a few dozen times.
The follow-up messages made this clearer. Each one asked for a little more detail than the last. Which specific issue would block the test? What exact changes are required, and which of them are essential now versus later? Those are fair questions. They are also the deliverable. Answering them precisely, in writing, before there is an agreement, is the engagement, and doing it for free would have been the last work I did for them.
The urgency turned out to be a negotiating position. It arrived Monday morning with a request to start that day, then went quiet for stretches long enough that the whole thing became a contest over who would respond first. Notice which direction it always pointed. My calendar was the bottleneck, never their approval process. Real urgency signs the contract and then complains about the timeline.
By Thursday it had become “flexibility.” An open-ended hourly arrangement rather than a defined scope, where their team retains final decision-making authority while relying on my expertise to guide them.
Read that sentence again, because it is the most honest thing anybody said all week. They wanted the expertise available and the decisions theirs. They wanted the map without hiring the person who knows the terrain.
So I killed it. Told them we had spent a week going back and forth and clearly were not aligned, and withdrew the contract.
I still do not know which of three things I was dealing with. It might have been genuine confidence that this work is easier than it is. It might have been that the money was never there. Or, most likely, it was a mid-level marketing manager who could not approve the number and could not say so out loud, negotiating hard against a figure he was never authorized to accept in the first place. That last one is the most common and the most forgivable, and it explains the entire week. If that was it, I would rather have heard it in the second message. There is usually a smaller version of the project that fits a real budget, and I would have scoped it in ten minutes.
What none of it changes is the underlying trade. Buying somebody’s hands feels safe, because you can count the hours and check the output. Buying somebody’s judgment feels like paying for air. So the scope keeps shrinking toward the part that looks like a deliverable, and the part where somebody experienced looks at your actual systems and tells you what is broken keeps getting treated as a preamble you should be able to skip. They had already paid for one hour of exactly that and watched it turn up a broken lead event nobody in the building had noticed. That should have been the argument for the engagement, not a substitute for it.
The plan was the product. The pipeline is just typing.
Their last message, after I pulled the contract, was gracious. They said they appreciated that first call and the knowledge it brought. I believed them, and they were right to say it. They got real value out of that hour. They found out their lead campaigns were pointed at a button, which is more than they knew when they woke up that morning and more than most companies ever find out about their own accounts.
What sticks with me is not the week I spent on it. It’s that the problem was fixable and it didn’t get fixed. They are selling two thousand dollar showers into a retail channel that doesn’t hand the data back, buying clicks from people who like clicking, with no way to tell which ads sold anything. Three weeks and it would have been a different account. As far as I know, it’s still the same one.