Selected Engagements

Growth Stories

Every engagement featured here is based on real work Fabien led, through his agency and partner roles or earlier in his career. The businesses involved were not contracted to Halo Strategic directly. Where appropriate, client details have been anonymised. Outcomes and quotations are only included where they have been verified.

We Told the Client the Market Was Too Small

Business situationA specialist architecture firm was spending on search advertising and getting almost no leads, and was close to pausing billing.
Actual constraintNot an execution problem. The niche didn't generate enough search volume to justify the budget, and some of the early "wins" were a tracking bug, not real conversions.
DecisionCorrected the inflated conversion data, then recommended pivoting from search to a visual, portfolio-led channel matching how buyers actually discover firms like this.
OutcomeAn honest explanation, trustworthy data, and a new channel strategy scoped and ready to launch. Performance after launch wasn't available for independent confirmation.

The Challenge

The client was spending on search advertising and getting almost no leads. They were frustrated, and ready to pause billing. On the surface, this looked like a campaign failure: wrong targeting, weak creative, an execution problem that needed fixing.

It wasn't. The niche the firm operated in simply didn't generate enough search volume to justify the budget. Roughly a quarter of the monthly spend could actually be deployed each month, the rest had nowhere to go. No amount of optimisation was going to fix a channel with too few searches behind it.

My Role

Account lead and strategist. Diagnosed the demand problem and separated it clearly from an execution failure, then designed the channel pivot that followed. The billing and scope decision was held for the agency principal's sign-off, and because the landing page had been built in-house by the client, any page-level diagnosis was routed internally rather than placing blame on their side.

What We Discovered

While reviewing performance, a second issue surfaced: some of the early conversions the client had been counting as wins weren't real. A CAPTCHA-related tracking bug had been inflating the conversion numbers. Rather than let the client keep believing in results that hadn't actually happened, the record was corrected, even though it meant admitting the channel was performing worse than it appeared. Put together, the picture was this: the client didn't have a marketing problem, they had a market-size problem, and part of what looked like early traction was ghost data.

What Changed

  • Diagnosed a demand-side ceiling in the niche, rather than treating it as an execution failure
  • Identified and corrected the tracking bug inflating conversion data, rather than letting the false wins stand
  • Recommended pivoting from search to a visual, portfolio-led demand-generation channel, matching how buyers in this category actually discover firms
  • Escalated the billing and scope conversation honestly, rather than continuing to bill against a channel that structurally couldn't spend its budget

Outcome

The client received an honest explanation for why leads were thin, corrected data they could actually trust, and a channel strategy that matches how their buyers behave. The engagement concluded with the new channel scoped and ready to launch; subsequent performance was not available for independent confirmation.

"Sometimes the market is the constraint, not the marketing."

Fixing Sales Follow-up Before Buying More Leads

Business situationA custom ADU builder, rebuilding after a franchise collapse, needed to lift booked site visits from roughly three a week to six or eight. The instinct was to buy more leads.
Actual constraintLeads weren't being called. The bottleneck sat downstream of the campaign entirely, in sales follow-up, not in targeting or creative.
DecisionStructured a consistent lead-to-booking-to-CRM funnel, held a geography-first strategy, then expanded channels only once that process was working.
OutcomeThe client was retained through a shaky early period and the account expanded into a proposed second channel plus a content workstream. Later site-visit volume wasn't available for independent confirmation.

The Challenge

The client, a custom ADU builder rebuilding after a franchise collapse, needed to lift booked site visits from roughly three a week to six or eight, enough to justify hiring their first salesperson. The instinct going in was simple: get more leads.

Then the numbers turned worrying. Fourteen leads produced a single booked site visit, and around 43% of those leads were out of the service area entirely. On the surface, that read as a targeting or creative failure, and the client was close to losing confidence in the campaign.

My Role

Growth strategist and client lead. Ran discovery, designed the funnel and creative strategy, led the client relationship through the difficult early-performance conversation, and later drove the account's expansion. Creative production and CRM/technical build sat with a wider team, this was strategic ownership, not sole execution.

What We Discovered

The leads weren't being called. The real constraint wasn't the campaign at all, it was what happened after a lead came in. Tightening targeting or refreshing creative wouldn't have moved a single number, because the leads arriving were often never being worked in the first place. The bottleneck sat downstream of marketing entirely.

What Changed

  • Diagnosed the near-churn moment as a sales follow-up failure, not a targeting or creative problem
  • Structured a clear lead form to booking to CRM funnel, so every lead had a consistent place to land
  • Locked a geography-first strategy, deliberately delaying expansion until the home market was saturated
  • Gave an honest answer on adding qualifying questions to the lead form, weighing better signal against added friction, rather than promising a painless fix
  • Opened a second ad channel and a long-form content channel as expansion, once the core process was working

Outcome

The client was retained through a shaky early period, and the account expanded from a single channel into a proposed second channel plus a content workstream. The engagement concluded after these recommendations were delivered; subsequent site-visit volume and whether the channel expansion went ahead were not available for independent confirmation.

"Fix the sales process before buying more leads."

Good Reporting Changes Decisions, Not Just Dashboards

Business situationAn international education provider felt disconnected from its account and unsure whether it was progressing, serious enough to escalate.
Actual constraintThe account was sitting inside its own defined ROAS guardrail the whole time. The real issue was visibility, not performance: dense reporting and no regular contact cadence.
DecisionIntroduced a plain-English summary layer above the dashboard, a fixed weekly-async-plus-monthly-call cadence, and a year-on-year trend view.
OutcomeA restructured reporting relationship and cadence were agreed, and a trend layer was scoped. Whether the new cadence held wasn't available for independent confirmation.

The Challenge

The client felt disconnected from the account and unsure whether it was actually progressing. On the surface, that read as a performance complaint, and it was serious enough to escalate.

The account was sitting against its defined ROAS guardrail the whole time. The real issue wasn't performance, it was visibility: the reporting was too dense to act on, there was no regular cadence of contact, and no way to see whether the account was growing over time. That gap had eroded trust to the point where the client no longer believed the work was happening.

My Role

Account lead. Diagnosed the issue, designed the new reporting and cadence model, briefed the data team on the trend module, and managed the sensitive escalation, including looping in the agency principal onto calls at the client's request.

What We Discovered

The client wasn't unhappy with performance, they were unhappy that they couldn't see it. Separating "the client is unhappy" from "the account is underperforming" was the step that mattered. Once that distinction was clear, the fix wasn't a campaign change at all, it was designing for visibility and trust as a deliverable in its own right.

What Changed

  • Reframed a performance complaint as a reporting and visibility problem
  • Introduced a plain-English top-line summary layer above the metrics dashboard
  • Locked a weekly async update plus a monthly live call as the standard cadence
  • Prioritised a year-on-year trend view to answer the client's real question: are we actually growing
  • Looped the agency principal into calls at the client's request, treated as a relationship signal rather than a routine calendar addition

Outcome

A restructured reporting relationship and cadence were agreed, and a trend layer was scoped and briefed to the data team. The escalation was managed toward a direct conversation between the client and the agency principal. The engagement concluded after these recommendations were delivered; whether the new cadence held and the escalation resolved positively was not available for independent confirmation.

"Good reporting changes decisions, not just dashboards."

We Moved the Client Off an Unstable Platform Before It Cost Them Momentum

Business situationAn interventional radiology / vascular practice's Meta advertising presence kept getting disrupted by account restrictions and login locks, interrupting both the campaign and the client's own account access.
Actual constraintNot a creative or targeting problem. The procedures being marketed are things people actively search for as alternatives to surgery, a better fit for intent-driven search than social in the first place.
DecisionCalled the pivot from Meta to Google, repositioned the procedures as surgery alternatives matched to how people search for them, and sequenced the switch to protect momentum.
OutcomeA justified channel pivot with a full build brief delivered. Post-pivot performance wasn't available for independent confirmation.

The Challenge

The client's Meta advertising presence kept getting disrupted, repeated account restrictions, suspicious-login locks, and a recovery process that dragged on each time. This wasn't a creative or targeting problem, it was a platform-reliability problem, and it kept interrupting both the campaign and the client's own access to their account.

My Role

Account lead. Made the channel-pivot recommendation, wrote the Google playbook brief covering procedure positioning, targeting radius, and keyword direction, and coordinated the team on keyword research and build. Kept the agency principal looped in throughout.

What We Discovered

At some point, fighting the platform stops being the right instinct. The procedures being marketed, varicose veins, fibroids, knee pain, are things people actively search for as alternatives to surgery. That made them a better fit for intent-driven search than for social in the first place. The instability wasn't just a nuisance to work around, it was the signal to move to the channel that suited the business better all along.

What Changed

  • Called the pivot from Meta to Google, rather than continuing to fight recurring account instability
  • Positioned the procedures as surgery alternatives, matched to how people search for them
  • Set a lead creative hook and a defined targeting radius for the new build
  • Sequenced the switch so momentum wasn't lost during the platform recovery process

Outcome

A clear, justified channel pivot was made, with a full build brief in place, protecting the client from ongoing platform disruption. The engagement concluded after the brief was delivered; post-pivot performance was not available for independent confirmation.

"When the platform keeps breaking, the fix isn't another workaround, it's the right channel for how the customer actually searches."

From Reacting to Leading

Business situationShortly after a regional placement and in-home care client launched a second market, the agency relationship had narrowed to "launch campaigns, react to issues," and the new market was underperforming.
Actual constraintNot ordinary growing pains. Tracking parameters were passing placeholder values, form-to-CRM data was inconsistent, and scripts were interfering with attribution, a trust-in-the-data problem, not a performance one.
DecisionFixed tracking before making any performance call, held off scaling the client's own parallel test platform, and introduced the Traffic Light reporting system.
OutcomeThe account's framing shifted from "is the channel working" to "this is a systems problem, now being solved," and the relationship moved from execution to account leadership.

The Challenge

Shortly after launching a second market, this placement and in-home care client's relationship with their agency had narrowed to "launch campaigns, react to issues." Underperformance in the new market looked like ordinary growing pains, the kind more spend or sharper creative usually fixes.

My Role

Account lead. Diagnosed the tracking integrity issue sitting underneath the underperformance, made the call to hold off scaling the client's own parallel test platform, and introduced the Traffic Light reporting system so the client could read performance without living inside the ads account.

What We Discovered

The real fault wasn't the campaign, it was whether the numbers could be trusted at all. Tracking parameters were passing placeholder values. Form-to-CRM data was inconsistent. Scripts were interfering with attribution. A client-initiated test platform running in parallel was assessed just as honestly: a platform-maturity problem, not a strategy one.

What Changed

  • Diagnosed a trust-in-the-data problem instead of treating it as a performance failure
  • Fixed tracking before any performance call was made, rather than optimising against numbers that couldn't be trusted
  • Held off scaling the client's own test platform until its platform-maturity issues were resolved
  • Introduced the Traffic Light system externally, so the client could read performance without living inside the ads account

Outcome

The account's own framing shifted, from "is the channel working" to "this is a systems problem, now being solved." The relationship moved from campaign execution to account leadership.

"A performance problem and a trust-in-the-data problem look identical from outside. The only way to tell them apart is checking the plumbing before touching the strategy."

The Data That Was Never Missing

Business situationA high-spend rehabilitation facility's admissions were gated by an internal insurance-verification process the agency had no visibility into, and cost-per-lead on some campaigns looked expensive enough to cut.
Actual constraintThe data wasn't missing. The client had been sending structured verification and admission data every month, and nobody had converted it into anything decision-usable.
DecisionAudited the client's own existing reports, built a guardrail layer on top of them, and held spend on campaigns the new layer showed were actually the best-quality source.
OutcomeA defensible, evidence-backed reason to keep spending where the old cost-per-lead metric said not to, and a materially stronger client conversation.

The Challenge

This high-spend rehabilitation-facility client's admissions were gated by an internal insurance-verification process the agency, on the surface, had no visibility into. Cost-per-lead on certain campaigns looked expensive enough to justify cutting them.

My Role

Account lead. Read the client's existing verification reports properly for the first time, built a guardrail layer on top of that data, and made the case for holding spend where a surface-level metric said to cut it.

What We Discovered

The working assumption was that downfunnel performance was simply unknown. It wasn't. The client had been sending structured verification and admission data every month, and nobody had converted it into anything decision-usable. Read closely, a clear pattern emerged: some of the "expensive" campaigns consistently produced verified admissions, while some of the cheaper leads stalled at the first verification step and never progressed.

What Changed

  • Audited the client's existing monthly reports instead of requesting new tracking or access
  • Built a guardrail layer directly on the client's own existing verification stages
  • Held spend on higher-cost campaigns the new layer showed were actually the client's best-quality source
  • Reframed "we don't have the data" as a claim worth checking, not a fact to accept

Outcome

A defensible, evidence-backed reason to keep spending where the old cost-per-lead metric said not to, and a materially stronger client conversation.

"'We don't have the data' is a claim worth checking before it's accepted. The gap is very often translation, not access."
Selected Commercial Engagements

Before Halo: Commercial Judgement Across More Than a Decade

The six engagements above were led by Fabien through his agency and partner roles; the businesses involved were clients of those agencies, not of Halo Strategic. The two below go further back: real commercial situations from Fabien's career before Halo existed, agencies he ran, companies he worked for, kept here because they show the same underlying judgement. Anonymised where a real third party is involved. The point isn't the logo. It's the decision.

Connecting the Click to What Came After

Business situationRunning paid social and display campaigns for a range of small and mid-sized clients through my own agency, each with a different product, budget and customer journey.
Actual constraintJudged only on a blended cost-per-lead, campaigns that looked identical on paper could be worth very different amounts to the business behind them.
DecisionRestructured every campaign around three stages of the customer journey, awareness, acquisition and re-engagement, measured and tactically treated separately rather than as one blended push.
OutcomeDocumented cost-per-lead from under £2 to nearly £20 by stage, and a combined £102,663.59 spend producing 15,797 leads at a blended £6.50.

The Situation

Running paid social and display campaigns for a range of small and mid-sized clients through my own agency, each with a different product, budget, and customer journey.

The Problem

Treated naively, a paying-client campaign is one thing: an ad, a budget, a result. Judged only on cost-per-click or cost-per-lead in isolation, campaigns that looked identical on paper could be worth very different amounts to the business behind them.

What Changed

Every campaign was restructured around three stages of the same customer journey rather than run as a single generic push: building awareness with people who didn't know the business yet, actively bringing in new customers, and re-engaging people who'd already shown interest. Each stage got different tactics and was measured separately, rather than one blended number covering all three.

  • A cost-per-lead figure only means something once you know which stage of the journey it came from
  • Campaigns were run and measured this way consistently, across many clients, tested and iterated on an ongoing basis
  • Real variance in cost-per-lead by stage and audience became the expected pattern, not a red flag

Outcome

Real, documented cost-per-lead figures ranging from under £2 to nearly £20 across different campaigns, and a combined £102,663.59 spend producing 15,797 leads at a blended £6.50, figures that only make sense once you know they're not measuring the same thing.

"A single blended metric can hide more than it reveals. The number that matters is the number attached to a specific stage of the journey, not an average across all of them."

The Numbers That Held Up

Business situationAt SuperAwesome, running a paid media campaign across the company's kids-safe advertising network to promote the release of a major animated film, on a fixed media plan.
Actual constraintNone to diagnose. Unlike every other story here, this one isn't about finding a hidden problem, it's about delivering exactly what was promised.
DecisionRan the campaign across all three contracted formats, refreshed and rotated creative through the flight, and reported results only after the fact, not projected in advance.
OutcomeOver 2 million bought impressions, a 2.5% average click-through rate across all formats, and video completion rates averaging over 80%, per the end-of-campaign wrap report.

The Situation

At SuperAwesome, working in media and sponsorship sales, running a paid media campaign across the company's kids-safe advertising network to promote the release of a major animated film.

The Brief

Deliver real reach and engagement for the release, across the audience the platform specialised in, on a fixed media plan: pre-roll video, expanding floor ads, and mobile interstitials.

The Work

The campaign ran across all three formats, with creative refreshed and rotated through the flight rather than left static, and results tracked and reported at the end of the campaign, not projected in advance.

Why This One's Different

Every other story on this page is about diagnosing a constraint before fixing it. This one isn't. It's simpler than that, and worth having for exactly that reason: sometimes the job is just delivering what was promised, and having the wrap report to prove it. Not every piece of commercial judgement is a clever diagnosis. Some of it is just doing the work and being able to show the receipts afterward.

Outcome

The wrap report, the actual end-of-campaign document, not a pitch or a projection: over 2 million bought impressions, a 2.5% average click-through rate across all formats, and video completion rates averaging over 80%.

"Accountability isn't only about finding the hidden constraint. It's also about being measured against a real number, after the fact, and having that number hold up."
Recurring Patterns

The Same Constraints, Seen Across Different Sectors

These are not individual case studies. They are composite patterns: how commercial problems typically present in a sector, drawn from a wide range of growth systems Fabien works across through his current agency role and partner relationships (roughly 280 recorded meetings with around 30 companies in 2026 alone). No client is identifiable, and no results are claimed. Where a written-up engagement above shows the same pattern, it’s linked.

Healthcare & behavioural health

Acquisition & Funnel Diagnosis

Presenting problem
Some campaigns look too expensive on cost per lead, and there’s pressure to cut them.

What the diagnosis often finds
Lead value only becomes visible downstream, at verification, intake or admission. Some cheaper sources stall at the first step; some “expensive” ones produce the patients.

Typical intervention
Connect the downstream data the business already holds to acquisition reporting, and judge each source on qualified outcomes. Where a platform keeps breaking, move to the channel that matches how patients actually search.

Commercial objective
Spend allocated on cost per admitted or treated patient, not cost per enquiry.

Evidence: The Data That Was Never Missing · Moving Off an Unstable Platform

Home services & multi-location

Customer Acquisition

Presenting problem
“We need more leads,” while booked appointments stay flat.

What the diagnosis often finds
Out-of-area leads, slow or missing follow-up, and no consistent path from enquiry to booking to CRM.

Typical intervention
Geography-first targeting, a defined lead-to-booking route and clear follow-up ownership, before expanding into new areas or channels.

Commercial objective
More booked jobs per location, and a process that can absorb more volume before more volume is bought.

Evidence: Fixing Sales Follow-up Before Buying More Leads · From Reacting to Leading

Agency & white-label partnerships

Growth Strategy

Presenting problem
The relationship has narrowed to “launch campaigns, react to issues,” and client trust is slipping even when performance is on target.

What the diagnosis often finds
A visibility and data-integrity problem rather than a performance one. Pricing logic that was never settled up front, surfacing as a dispute once the account matures. Fast onboarding without an agreed diagnosis, followed by work going quiet within weeks.

Typical intervention
Fix tracking before judging any channel, add a plain-English reporting layer and a fixed cadence, and set scope and pricing logic at the diagnosis stage rather than negotiating it later.

Commercial objective
Accounts scoped to the real constraint, retained, and able to grow.

Evidence: Good Reporting Changes Decisions · Agency Partnerships

Recognise your own business in one of these? Start with a Commercial Audit, or the Commercial Diagnostic first.