$75,000. UAE. Lead generation.
One campaign, from an eight-sentence brief to a reconciled invoice. Every decision annotated, every calculation shown.
The brief, as received
Halcyon Properties. Boutique brokerage, off-plan residential, UAE. Budget $75,000 for September. We want leads. Last agency got us leads at $60 so that is the target. Let us be on Meta, Google and TikTok. Creative is ready. Go live 1 September.
Eight sentences. Seven problems.
Stage 1 · Diagnose
Not "what should the plan be." That comes later. The decision here is narrower: is there enough in this brief to plan against, and if not, what is the shortest list of questions that would fix it?
| Flag | Status | Question asked |
|---|---|---|
| Business objective | MISSING | "Leads" is a mechanism. How many sales does September need to be worth doing? |
| Business economics | MISSING | Average commission per sale, and margin after the agent split? |
| Sales process | MISSING | Who calls a lead, how fast, in which language, on which days? |
| Lead routing | MISSING | Where does a lead land, and can we see what happened to it? |
| Conversion event | MISSING | Can you show me the Lead event firing in the last seven days? |
| Unsupported KPI | FLAGGED | Where did $60 come from, and was it a contactable lead or a submitted form? |
| Available creative | FLAGGED | What exists today, in which languages and ratios? Not what is being made. |
What came back
- Target is 4 sales in September. Off-plan, so a sale closes weeks after the enquiry.
- Average commission $45,000. Contribution after agent split and servicing: 40%.
- Leads go to a shared inbox. Two agents. Nobody could say how fast the first call happens.
- The Lead event was firing. On the landing page, not the thank-you page.
- $60 was cost per form submission, on a campaign optimised to form fills, with no CRM feedback. Nobody had checked what happened to those leads.
- Creative: one 4:5 video, English only.
The $60 target and the $60 that was achieved are not the same unit. That is the whole of the first conversation, and it happened before any media was planned.
Stage 2 · Decide
Platforms
| Platform | Score | On the plan | Reason |
|---|---|---|---|
| Meta | 34 / 40 | Yes | Volume lead generation, creative exists, measurement is fixable, audience fits. |
| Google Search | 31 / 40 | Yes | Existing intent. People search for off-plan by area and developer. A different job from Meta, not a duplicate. |
| TikTok | 18 / 40 | No | No native creative and no production budget. Funding it above its floor takes roughly a third out of the two lines that produce qualified leads. |
Three platforms score as defensible. The plan can afford two. What are we not doing is not a mood, it is the whole question: the third line would be funded by the two that produce.
TikTok is off this plan and it is worth saying why rather than leaving it off quietly. The only asset is a 4:5 video made for feed, and running it on TikTok would test the asset rather than the platform.
Funding it properly would also take about a third out of the two lines that generate qualified enquiries. If TikTok matters, the honest version is a separate test budget with its own creative and a defined read date, not a third line on a plan this size.
One video, one ratio, one language is not a creative strategy, it is a creative inventory. Put it on a platform it was never made for and you are testing the asset, not the platform.
Funnel and objective
Business outcome: four sales. Customer behaviour: submits an enquiry a human can call. Optimisation event: Lead, fired on the thank-you page, once that page exists and the event is verified. Not landing page view. Not form start.
One stage, not three. At this budget a three-stage split produces three campaigns that never finish learning.
Stage 3 · Build
What can this business actually pay?
Run before any target is accepted. Every input came from the client.
Revenue per sale $45,000 Contribution margin 40% Contribution per sale $18,000 Acceptable acquisition share 30% (client's own policy) Maximum CAC $5,400 Contactable rate 45% (CRM, three months) Qualified rate 35% Close rate 12% Lead to sale rate 1.89% (0.45 x 0.35 x 0.12) Maximum affordable CPL $102 (5,400 x 1.89%) Maximum affordable qualified CPL $648 Leads needed per sale 53 Leads needed for 4 sales 212
The $60 target was never the problem. The business can afford $102 for a lead it can actually contact. Chasing $60 was leaving quality on the table to hit a number nobody derived.
The fragmentation check
Gross budget $75,000 Fees 15% Net working media $63,750 As first drafted: 1 market x 3 platforms x 2 stages x 1 campaign x 2 ad sets = 12 cells Monthly per cell $5,313 Daily per cell $177 Minimum viable daily $400 (client's own account history) Verdict TOO THIN on all 12 lines Cells this budget can fund 5 Cells planned 12 Revised: 1 market x 2 platforms x 1 stage x 1 campaign x 2 ad sets = 4 cells Daily per cell $531 Above the floor
Twelve planned, five affordable. That gap is the entire argument for cutting TikTok and collapsing the funnel, and it is arithmetic rather than opinion, which is why the conversation lasted a minute.
Twelve lines at $177 a day against a $400 floor. Every one of them would have spent its budget and produced nothing readable. It totals. It does not work.
The forecast
Rates from the client's own twelve-month account history, with sources and dates recorded. None are benchmarks and none should be reused on another account.
| Stage | Rate | Result |
|---|---|---|
| Net media | $63,750 | |
| CPM | $45 | 1,416,667 impressions |
| Frequency | 3.2 | 442,708 reach |
| CTR | 1.1% | 15,583 clicks |
| Landing page session rate | 82% | 12,778 sessions |
| Landing page conversion | 4.5% | 575 leads |
| Contactable | 45% | 259 contactable |
| Qualified | 35% | 91 qualified |
| Close | 12% | 10.9 sales |
| Revenue | $45,000 each | $489,059 |
| Contribution | 40% | $195,624 |
| Less media | $131,874 net |
The plan against what the business can afford
Forecast cost per lead $111 Affordable: $102 Forecast cost per qualified $704 Affordable: $648 Forecast cost per sale $5,865 Maximum CAC: $5,400
Every one is slightly over. And the campaign still returns $131,874 of net contribution. Both of those are true, and the second does not cancel the first. Cost per sale at $5,865 is 32.6% of contribution against a stated policy of 30%.
The campaign is profitable and outside policy. That is a policy conversation, not a media problem, and it is a much better conversation than the one where you quietly plan to 30% and miss it.
Your policy is to spend 30% of contribution to acquire. This plan spends 32.6%. It is profitable at that level and it exceeds the number you set. Either the policy has room, or we plan for fewer sales at a tighter cost. I would rather you chose than have me choose quietly.
Scenarios
Conservative assumes CPM 20% worse, and CTR, landing page conversion, contactable, qualified and close rates each a fifth worse. Strong assumes CPM and the same five rates each a tenth better.
| Conservative | Expected | Strong | |
|---|---|---|---|
| Leads | 307 | 575 | 765 |
| Qualified | 31 | 91 | 146 |
| Sales | 3.0 | 10.9 | 19.3 |
| Net contribution | -$10,332 | $131,874 | $282,809 |
The conservative case misses the target and loses money. Three sales against four, and net contribution roughly $10,000 negative.
That is the finding, and it is worth more than the expected case. A forecast that only works when every assumption holds is not a forecast, it is a hope with a spreadsheet attached.
Two things followed, both agreed before launch rather than discovered in week three. A trigger: if cost per contactable lead exceeds $250 across a full week, the plan is reviewed rather than tuned. A mitigation: if the trigger fires, Google Search holds and Meta's budget is cut rather than optimised, because at this size there is not enough headroom to fix a structural miss with tuning.
Stage 4 · Launch
Measurement first, because everything decided here is expensive to change once money is moving.
| Item | Found | Action |
|---|---|---|
| Lead event | Firing on the landing page | Moved to the thank-you page. Verified with a test submission. |
| Thank-you page | Did not exist | Built. It is also where the event now fires. |
| Deduplication | Browser and server both firing | Deduplicated. Reported conversions fell by roughly a third, which was the point. |
| CRM feedback | None | Weekly export agreed. Qualified rate becomes measurable from week three. |
| Phone field | Rejected numbers typed with a leading zero | Fixed. |
| Response time | Unmeasured | Owner named, target set, measured weekly. |
The phone field was the cheapest fix on the list and probably the largest. It had been silently rejecting a share of valid submissions for months. Nobody had completed the form on a phone since it was built.
Forty-seven checks. Three critical items open at first pass: the Lead event location, the missing thank-you page, and an expired PO. Launch moved by two days.
The event was firing. It was firing on arrival rather than on completion, so every visitor was a conversion. Installation is a task someone completes. Verification is a task nobody is assigned.
Stage 5 · Improve
Week 2. Cost per lead $96, comfortably under affordable. Contactable rate came back at 31%, well below the 45% the CRM had reported historically.
Classified as a quality problem, not a delivery or attention problem. Nothing in the ad account was adjusted. Diagnosis: time from lead to first call was averaging 19 hours, and leads arriving Thursday evening were being called on Sunday.
Cost per lead is under target and contactable rate is a third below what your CRM history showed. The gap is response time, not media: first call is averaging 19 hours, and Thursday evening enquiries are being called on Sunday. Fixing that is worth more this month than anything I can do in the ad account.
Week 3. Response time addressed by the client. Contactable rate recovered to 41%. No media change was made in either week, and the account was left alone deliberately.
Stage 6 · Reconcile
Approved plan $75,000 PO raised $75,000 Platform actuals $61,880 (net media) Fees at 15% $ 9,282 Invoiced $71,162 Variance to approved $ 3,838 under
Flag raised: the Google Search invoice referenced the August campaign name. Queried the same day with platform actuals attached, re-issued within 48 hours.
Outstanding exposure at month end: $4,410, being spend delivered in the final three days and not yet invoiced. Accrued, and given to finance before they asked.
The invoice named the wrong month and the PO had expired before launch. Neither is glamorous, and both are the reason the number at the bottom of this page is true. Somebody compares the two documents nobody else reads.
What this example is actually showing
Six things, and none of them are the media plan.
- The target was never the problem. $60 was a real number measuring the wrong thing. The business could afford $102. Fifteen minutes of arithmetic found that, using nothing but the client's own figures.
- The fragmentation check made the platform decision. Twelve cells planned against five affordable. TikTok came off because of arithmetic, not preference.
- The cheapest fix was a phone number field. Nobody had filled in the form on a phone.
- The best week involved changing nothing in the ad account. The largest available gain was response time, which belonged to the client.
- The plan was profitable and outside policy at the same time. Naming that made it the client's decision rather than a quiet miss.
- The conservative case lost money, and that was said before launch. It produced a written trigger and an agreed mitigation.
Every number's provenance
| Input | Source |
|---|---|
| Commission, margin, acquisition share | Client finance |
| Contactable, qualified, close rates | Client CRM, three months |
| CPM, CTR, landing page rates | Client's own account, twelve months |
| Minimum viable daily spend | Client's own account history |
| Everything else | Derived by formula from the above |
No industry benchmark was used at any point in this example. That is not a stylistic choice. It is the reason every number in it survived the client's own scrutiny.
The free case puts you inside a situation like this one and asks what you would do. No signup.