Business Club Varna2 years, 140+ members, zero ad spend12 signed engineering contracts a quarter instead of 9 on $2,300 a month less in Google Ads
Castellan Structural Group, an engineering consultancy in Tacoma, had run Google Ads for 4 years and could read the lead count in every monthly report, but not how many of those leads became signed work. Between Q1 2025 and Q1 2026, signed engagements traced to Google Ads went from 9 to 12, and the ad cost per signed contract fell from $2,400 to $1,225, on a third less spend. Dana Ferris, the firm's business development director, had asked the previous agency twice how many leads became jobs, been shown a lead count both times, and stopped asking. The account could not answer it either, and that was where the money had been going.
About the client
Castellan Structural Group is a 24-person structural and civil engineering consultancy in Tacoma, with offices in Seattle and Portland, selling PE-stamped assessments and structural design to commercial developers and general contractors at an average of about $42,000 per engagement and a 70-day path from enquiry to signature. It had run Google Ads through a previous agency since autumn 2021 and was spending $7,200 a month in media (every spend figure in this piece is what Google was paid, not what we were) when it came to us in September 2025. By then the project managers were fielding calls from homeowners about decks and cracked footings, the RFP inbox held jobs the firm would never quote, and the monthly report said the campaign was working.
Our analysis of the situation
The search-term report, the usual leak at this spend, showed nothing wrong: a 60-term negative list, commercial queries, residential terms at 11% of clicks, which could not explain a form inbox where 2 submissions in 3 were homeowners. The landing page and geography held up too: 1.9-second mobile load, "commercial and institutional" in every headline, a 6.8% form conversion, targeting limited to 3 counties.
The fault was in what the account had been told to want: one conversion action, an unvalued form submission, no call tracking, and a 30-day window against a 70-day sales cycle. Performance Max, carrying 70% of the budget, had learned since 2022 that homeowners fill in forms more readily than developers do. Matching Pipedrive's won-and-lost export against form timestamps by hand showed 9 Q1 2025 contracts had begun as a Google Ads click, of which the platform could see 3.
So the numbers to work on were cost per qualified lead and cost per signed contract, with cost per lead expected to get worse and the 20% close rate left alone.
Supporting research
GrowthSpree's published audit of a B2B account describes the same failure: Smart Bidding trained on form fills, 78% of which never qualified, until the click ID reached the CRM [1]. Colling Media's August 2024 Performance Max case for a trade school showed the shape we wanted, cost per enrollment down 59% once the campaign was fed enrollments instead of form fills, without more leads [2].
Our strategy to solve the problem
We started with the form, not the account. On 14 October the Gravity Forms RFP form was rebuilt: project type and budget range became required, and a line under the submit button says Castellan does not take residential inspection work. The change that mattered most was the form, and it touched no ad setting at all. Once project type and budget range were required and the residential line sat under the submit button, homeowners stopped submitting, and within a week the project managers' callback queue was mostly developers and contractors.
The same day, a hidden gclid field went onto the form and is written to a Pipedrive custom field, "Google Click ID", on every new deal, and CallRail went onto the site numbers on the $45-a-month plan, 5 local numbers, so that every lead and every call could be tied to the click that produced it. Everything that followed was about making the account learn from that.
On 3 November the conversion window went from 30 to 90 days, a Zapier step began writing every Pipedrive stage change to a Google Sheet nightly, and a scheduled Google Ads import reads that sheet at 02:00 Pacific. The 90-day window and the import were the second change. Without them, every contract Castellan signs on day 60 would still be a form fill that went nowhere, and the account would keep bidding toward the wrong people however well the form filtered. Sending real contract values to Google needed sign-off from the managing principal, which took a conversation about what Google can and cannot do with a dollar figure attached to an anonymous click ID.
The one conversion action was replaced with 3 the same day: "RFP - Submitted" at $1, "RFP - PM Qualified" at $50, and "Contract - Signed" at the imported contract value, with bidding switched to Maximize conversion value. The tiered actions gave Performance Max a scale it had never had: a qualified lead worth 50 times a raw one, a signed contract worth its real dollar value, imported nightly with the click that started it. On 17 November the blended campaign was split into "Commercial - Search" and a small "Brand - Search" with a shared negative list of about 140 terms, so brand traffic could no longer flatter the commercial numbers.
With fewer than 20 qualified events a month at the start, the relearning took closer to 8 weeks than the 4 we had expected, and through most of November and December the account looked worse than the one we had inherited. On 8 December the negative list was rebuilt around residential modifiers (deck, my house, crack repair cost) instead of structural nouns, because our first list had blocked "foundation" and with it commercial foundation design queries. In January 2026 the monthly budget came down from $7,200 to $4,900; the account no longer needed volume to find developers.
From Castellan we needed admin access to Pipedrive; project managers marking every lead's fit within 48 hours, which was patchy for 3 weeks until Dana made it part of the Monday review; and patience with a falling lead count through 2 months before anything else visibly improved.
Before and after
Before is Q1 2025; after is Q1 2026. Commercial RFP volume around Puget Sound rises in spring, so a Q4-to-Q1 comparison would have credited the season to the work.
| Metric | Q1 2025 (before) | Q1 2026 (after) | Change |
|---|---|---|---|
| Monthly ad spend | $7,200 | $4,900 | −32% |
| Ad spend, 90 days | $21,600 | $14,700 | −32% |
| Raw leads (form submissions) | 150 | 92 | −39% |
| Cost per raw lead | $144 | $160 | +11% (worse) |
| Sales-qualified leads (PM confirms commercial fit within 48 hours) | 45 (30% of raw) | 60 (65% of raw) | +33% |
| Cost per sales-qualified lead | $480 | $245 | −49% |
| Qualified leads that signed | 20% (9 of 45) | 20% (12 of 60) | flat |
| Signed contracts traced to Google Ads | 9 | 12 | +33% |
| Signed contracts Google Ads could see in its own reporting | 3 of 9 | 12 of 12 | 33% to 100% |
| Contract value at signature (at the $42,000 average) | $378,000 | $504,000 | +33% |
| Ad cost per signed contract | $2,400 | $1,225 | −49% |
The close rate is flat by design. The work was in getting more of the leads worth calling back for less money, and the firm's selling was left as it was. Cost per raw lead is up 11% because residential clicks no longer pull the average down. 2 other cautions on the table: the Q1 2025 count of 9 was reconstructed by hand from Pipedrive while the 12 came through the import, so the 2 quarters were counted by different methods, and 2 of the 12 had been signed but not yet started at the reporting date.
In Q1 2025 the before column meant that roughly $15,120 of the quarter's spend went on 105 submissions nobody would quote, and 3 project managers spent part of every week explaining to homeowners that the firm does not inspect decks. Now the same 3 people get fewer calls and most of them are from developers, and Dana can put a signed-work figure next to the ad spend in the quarterly deck without building it by hand.
Summary
For 4 years the account had been rewarded for one thing, a submitted form, with no way to tell a $42,000 developer from a homeowner and no window long enough to see any contract close, so it got very good at finding homeowners.
We ruled out keywords, landing page and geography first, each with the account's own data, and found the fault in the conversion settings when we laid the CRM's won-and-lost export next to the form timestamps by hand.
A stricter form, a click ID carried into Pipedrive, a nightly import inside a 90-day window and 3 valued conversion actions gave the account signatures to learn from instead of submissions.
The result, on $2,300 a month less: 12 signed engagements in the quarter instead of 9, at about half the ad cost per contract.
References
- GrowthSpree, "Google Ads audit for a B2B SaaS company spending $145K a quarter". growthspreeofficial.com
- Colling Media, "Enhancing lead quality with Google Performance Max for trade schools" (August 2024). collingmedia.com
Final word from the client
12 against 9 on less money, fine, I'll take it. What I actually got was the answer to the question I'd given up on. 4 years of asking how many of these turned into jobs and the answer was always a lead count. Now it's a column in Pipedrive. I still don't love a report where cost per lead is up.”






