Molitaris Consulting

P3 Services Partner Hub

Incorrect password
Press Enter to continue

P3 Services

×

Molitaris Consulting

Partner Hub · Priority accounts
Live · changes rolling out Updated Aug 4, 2026 Data: Jun 30 – Jul 29
00

This week's sign-off list

From our Aug 3 call: the changes queued and ready, in priority order. Reply "approved" by text or email per line (or all at once) and we push the same day. Every change gets logged on this page, so you always see what moved and when.

#ChangeStatusWhat happens
1Conversion tracking consolidationAll three accountsAwaiting your goBooked jobs become the primary conversion, overlapping call trackers demoted to secondary. Reported CPA will rise to the booked-job number; actual booked jobs do not change. This is the fix that makes bidding chase jobs instead of calls.
2Negative keyword listsAll three accountsAwaiting your goThe drafted lists: competitor names and confirmed waste only. Anything that could be a real service line is held until we read the business profiles you are sending.
3Turn off the last auto-applyPrideAwaiting your go"Optimize ad rotation" is the one auto-apply still on anywhere. Off in one click.
4Brand bid capRolland ReashAwaiting your goStops paying up to $57 a click for people already typing the company name. Frees an estimated $2,500 to $3,500/mo for the non-brand engine that is already working.
01

The three priority accounts at a glance

Live numbers pulled straight from the Google Ads API, last 30 days. "Reported CPA" is what each account says about itself today. "Cost per booked job" is spend divided by ServiceTitan booked jobs, which is the number we think you should actually run the portfolio on. The gap between those two numbers is most of what this audit is about.

Pride Plumbing Services
Mount Gilead, NC · callprideplumbing.com
Spend (30d)$15,350
Reported conversions150
Reported CPA$102
ServiceTitan booked jobs52
Cost per booked job$295
Avg CPC / CTR$25.04 · 5.7%
The $102 CPA is inflated by overlapping conversion actions (details in 02). $295 per booked job is the baseline to improve from.
Read the full audit →
Rolland Reash Plumbing
Jacksonville, FL · plumbingjacksonville.com
Spend (30d)$16,405
Reported conversions89
Reported CPA$184
ServiceTitan booked jobs67
Cost per booked job$245
Avg CPC / CTR$31.73 · 5.2%
Best cost per booked job of the three, but the account is bidding on raw phone calls while all the ServiceTitan data sits unused (details in 03).
Read the full audit →
2 Sons Plumbing
Seattle, WA · 2sonsplumbing.com
Spend (30d)$18,423
Reported conversions138
Reported CPA$134
ServiceTitan booked jobs51
Cost per booked job$361
Avg CPC / CTR$16.09 · 3.7%
Highest spend, weakest true efficiency. 42% of spend goes to brand terms, which makes the reported CPA look better than the account really is (details in 03).
Read the full audit →
02

Audit scorecard

The standard checks we run on every account, side by side. Green means healthy, yellow means it works but is leaking money or trust, red means it needs to be fixed before we can optimize on top of it. This same scorecard scales to all 13 OpCos: one row per check, one column per account.

Check Pride Plumbing Rolland Reash 2 Sons
Auto-apply recommendationsIs Google making changes on its own? WARN
"Optimize ad rotation" auto-apply is ON. 9 others paused. We'd switch the last one off.
PASS
All 25 auto-apply types paused. Google is not self-driving this account.
PASS
All auto-apply types paused.
Negative keyword listsDo shared negative lists exist and cover the campaigns? PASS
4 shared lists, 252 terms, plus 1,537 campaign-level negatives.
PASS
9 shared lists, 746 terms, plus 2,240 campaign-level negatives. Well organized.
PASS
8 shared lists (~1,085 terms), plus 5,000+ campaign-level negatives.
Search-term wasteIs money still leaking past the negatives? WARN
$445 on local competitor-brand searches with zero booked jobs (17 brands missing from the Competitors list). The bigger "geo" bucket turned out to be in-area demand worth keeping. Draft list ready.
WARN
$1,555 on competitor-name searches, leaking mainly through a Dynamic Search ad group. St. Augustine is only $202. "Near me" terms are core demand and stay. Draft list ready.
WARN
Competitor names and commercial HVAC queries are the real leak. Auburn and Tacoma are inside the deliberate King and Pierce county footprint, so those terms stay and get fixed with Quality Score and bids. Draft list ready.
One clean primary conversionDoes "a conversion" mean one thing? FIX
10 of 16 actions are primary. One phone call can count 3+ times (call tracker, ST inbound, ST booked, JVP).
FIX
Every ServiceTitan action is secondary. The account bids on raw calls and form fills instead of real jobs.
FIX
5 overlapping call trackers across 3 phone numbers are all primary. ServiceTitan all secondary. Duplicate thank-you page actions.
Reported CPA trustworthyCan you make budget decisions from the CPA on screen? FIX
$102 reported vs $295 per ServiceTitan-reported booked job. Overcounting flatters everything by ~3x.
WARN
$184 reported, but it measures calls, not jobs. ServiceTitan reporting: $245 per booked job.
WARN
$134 reported, propped up by brand. ServiceTitan reporting: $361 per booked job, ~$292 CPA on non-brand.
ServiceTitan data flowingIs ServiceTitan reporting reaching Google Ads? PASS
Imports are live: calls, booked jobs, completed jobs all arriving. The plumbing works, the wiring is wrong.
PASS
Imports live. 67 booked jobs recorded in 30 days, just not being used for bidding.
PASS
Imports live. 51 booked jobs recorded.
Brand vs non-brand balanceIs growth spend actually going to new customers? WARN
27% of spend on brand. Non-brand is starved: its daily budget runs out before the demand does.
WARN
40% of spend on brand at an average $45.28 per click (top terms $50 to $57). Uncapped bidding is buying your own name at non-brand prices. A cap frees an estimated $2,500 to $3,500/mo.
FIX
42% of spend on brand, using ~$260 of an $800/day budget. Brand drives 64% of conversions while non-brand shows for only a small fraction of relevant searches: its budget runs out daily and weak Quality Score keeps it out of the rest.
Account hygienePaused clutter, legacy experiments, structure debt WARN
32 campaigns, 3 doing all the work, 29 paused experiments from past agencies. In the active build: 80 broad-match keywords and 15 keywords at Quality Score 3.
WARN
18 campaigns, 3 active. Old smart campaigns and one-off promos linger.
FIX
55 campaigns, 3 enabled, 2 spending. Three generations of past agency structures. The landing page test campaign shares the non-brand budget, so it can never actually spend.
03

The biggest issue in each account

One headline per account, in plain English, with the first move we would make once you give the go-ahead. Nothing here has been changed yet.

Pride Plumbing

The CPA you see is not real

10 of the 16 conversion actions are set to primary, so a single phone call can be counted three or more times: once by the call tracker, again as a ServiceTitan inbound call, again as a booked job. The account reports a $102 CPA while ServiceTitan reporting shows $295 per booked job. Every bidding decision Google makes is trained on that inflated number.

First move: one clean primary set (ServiceTitan booked job plus qualified call), everything else demoted to secondary. Drafted and ready, goes live only after your approval.
Rolland Reash

Bidding on calls while the real data sits unused

All 12 ServiceTitan actions are marked secondary, so Google optimizes toward any phone call or form fill. The clearest symptom: uncapped bidding pays an average $45 per click for people already typing the company name, 40% of the whole budget. Competitor-name searches leaked another $1,555 last month. Meanwhile 67 booked jobs flowed in from ServiceTitan and were ignored by the bidding.

First move: promote ServiceTitan booked jobs to primary and add the drafted negative list. This is the best-performing account of the three ($245 per booked job) and it is succeeding despite its setup.
2 Sons

Brand is carrying the account

42% of spend goes to brand terms, and brand delivers 64% of all conversions. Strip brand out and non-brand converts around a $292 CPA while showing for only a small fraction of relevant searches: its keywords average Quality Score 4.2 against 8.3 on brand, which drives ~$51 clicks and keeps the budget running out early. The growth engine is small and expensive, and the reported $134 CPA hides that.

First move: rebalance budget toward non-brand rebuilt on booked-job bidding and better Quality Score, cap brand, give the landing page test its own budget, and take the new page live (mock is ready in section 06).
04

What we've done and what's in motion

Everything Molitaris Consulting has touched since access was granted on Jul 27, and where each workstream stands going into the Aug 3 walkthrough.

WorkstreamStatusWhere it stands
Account access & wiringAll three OpCos Done · Jul 27 Invitations accepted, read-only data access wired up for the whole Molitaris Consulting team. MCC linking to follow the week of Aug 3.
Fresh-eyes data pullAll three OpCos Done · Jul 30 Full 30-day pull: performance, campaign structure, conversion actions, negative coverage, search terms, auto-apply settings, change history.
Audit scorecard & this hubPortfolio-wide Live You are looking at it. This page will stay current as the standing visibility layer, and the format extends to all 13 accounts as we onboard them.
Full audit writeupsOne per account Done · Jul 31 Three deep-dive audits published on this hub, with the evidence behind every scorecard row and recommendations split into first moves and later: Pride · Rolland Reash · 2 Sons. We walk through them together on Aug 3.
Draft negative keyword listsOne per account Ready for review Drafted for all three accounts, grouped by theme with the dollars behind every term. Biggest clean win is local competitor names. In-area city terms were deliberately kept: they are demand, not waste.
Conversion tracking fix planOne per account Ready for review Exact primary/secondary mapping drafted for every conversion action in all three accounts. It is a settings change, not a rebuild: the ServiceTitan booked-job reporting already flows into each account. See section 05.
Proposed landing pagesPride · Rolland · 2 Sons Ready for review Three working mocks are built and live at private preview links (section 06). Nothing is connected to any campaign.
ServiceTitan import verificationAll three OpCos In progress First reconciliation happened live on the Aug 3 call: ServiceTitan shows 56 / 95 / 79 July booked jobs vs 52 / 67 / 51 reaching Google Ads. Rolland and 2 Sons each lose roughly 28 jobs in the import. With ServiceTitan access we hunt down the drop-off; the same access opens the job-value / lifetime-value layer.
Changes in the accountsAll accounts Unlocked · Aug 4 The audit lock is off per our Aug 3 call. Pushes happen as you approve sign-off items, and each one gets logged on this page the day it ships.
High-value job skewAll OpCos · the value layer Planned · after tracking Once booked jobs flow correctly, we import job values from ServiceTitan and find which searches and service lines produce the big tickets (specific searches usually mean less price sensitivity). Then campaigns get split by service line and budget steers toward the higher-value work. Volume stays the near-term goal; this layers on top without trading it away.
05

The measuring stick: cost per booked job

Today every account defines "a conversion" differently, so no two CPAs can be compared. The one number that means the same thing in every OpCo is a booked job in ServiceTitan (a booked appointment). We have locked the last 30 days as the historical baseline below. From the day the tracking fix goes live, this is the number we manage to, report on, and beat.

Pride · baseline
$295
per booked job · 52 jobs
Rolland · baseline
$245
per booked job · 67 jobs · best of three
2 Sons · baseline
$361
per booked job · 51 jobs · biggest opportunity
Portfolio · the number to beat
$295
170 booked jobs on $50,178
Why this works: the ServiceTitan offline conversion imports are already flowing into all three accounts. The tracking fix below simply points Google's bidding at them, so every dollar starts optimizing toward booked jobs instead of phone-call noise. Long term, the same import pipe carries job values, which is how we eventually bid to revenue, not just volume. That is the engine of this whole engagement, and it is why tracking comes before everything else. The program in one line: drive cost per booked job down, verify the ServiceTitan import against your own reports so the baseline is bulletproof, then layer in job value and customer lifetime value so budget flows to the work that is actually worth the most.

Brand vs non-brand, on the same yardstick

Same booked-job math, split by where the money goes. This is why the rebalances are drafted the way they are: brand is efficient everywhere, and non-brand is where the tracking fix and Quality Score work have to earn their keep.

AccountBrand spendBrand booked jobsBrand cost / jobNon-brand spendNon-brand booked jobsNon-brand cost / job
Pride Plumbing$4,07535$117$10,17214$718
Rolland Reash$6,56525$259$9,30540$233
2 Sons$7,81043$182$10,6149$1,179

Read this honestly: brand partly harvests demand the rest of the marketing creates, so a $117 brand job is not a reason to move everything to brand. It is a reason to cap brand where it overpays (Rolland), protect it where it is cheap, and drive the non-brand number down with booked-job bidding, Quality Score, and the negative lists. Rolland shows what healthy looks like: non-brand at $233 beats its own brand. LSA books through its own lead type, so it sits outside this table. Campaign-split totals can differ from the account totals by a job or two because of how Google attributes offline imports.

What Rolland's non-brand does differently

We compared the three non-brand builds keyword by keyword. Rolland's is noticeably smaller and more curated, and it happens to be the one with the best cost per booked job. Market differences mean we cannot pin the whole gap on structure, but the differences are consistent enough to be worth carrying across.

Non-brand buildRolland ReashPride Plumbing2 Sons
Active keywords47, all phrase/exact200301, of which 88 broad match
Ad group structure8 tight service themes, 5-8 keywords each, plus a dedicated "Near Me" group15 groups incl. seasonal relics (a 50-keyword winter campaign group)9 groups incl. one 120-keyword catch-all
Avg Quality Score5.8 (2 keywords at 4 or below)3.64.2
Negative list stack9 themed shared sets4 sets8 sets, patchier
Cost per booked job$233 ("Near Me" group: $176)$718$1,179

What we'd look to carry over to Pride and 2 Sons, tested account by account rather than assumed: a leaner phrase/exact keyword set, tighter service-themed ad groups so ads match queries and Quality Score can recover, a dedicated "Near Me" group, Dynamic Search fenced in its own ad group, and deeper negative stacks. All of it on top of booked-job bidding. Jacksonville's market density clearly helps Rolland, so the aim is closing the structural gap and seeing how much of the performance gap follows.

The goal is identical wiring in all three accounts (and eventually all 13): ServiceTitan booked jobs and qualified calls as the primary conversions Google bids on, everything else kept as secondary diagnostics. Then every CPA on every dashboard means the same thing.

Pride Plumbing

AuditActions mappedFix draftedYour approvalLiveVerified

Today: 16 actions, 10 primary, heavy double counting.
After the fix: booked job + qualified call primary, calls/JVP/completed jobs secondary. Reported CPA becomes the real cost per booked job.

Rolland Reash

AuditActions mappedFix draftedYour approvalLiveVerified

Today: 23 actions, ServiceTitan entirely secondary, bidding on raw calls.
After the fix: the 67 monthly booked jobs become the bidding signal instead of a footnote.

2 Sons

AuditActions mappedFix draftedYour approvalLiveVerified

Today: 21 actions, 5 overlapping call trackers on 3 phone numbers all primary.
After the fix: one call source, booked jobs primary, duplicate form actions retired.

06

Proposed landing pages

Working mocks for all three OpCos. They are private previews on our hosting, not connected to any campaign or domain; production versions go to help.[domain] subdomains once DNS and the ServiceTitan tracking snippet are in. The checklist under each shows what happens between "you like it" and "it takes traffic."

Pride Plumbing LP

Mount Gilead NC service area, call-first layout
  • Page built and deployed
  • Search-page noindexed
  • Localize images (currently pulled from your site)
  • Wire form + call tracking
  • Swap in real reviews
  • Your approval
Open full page →

Rolland Reash LP

Jacksonville FL, built from the same proven template
  • Page built and deployed
  • Search-page noindexed
  • Localize images
  • Wire form + call tracking
  • Swap in real reviews
  • Your approval
Open full page →

2 Sons LP

Seattle WA, pairs with the non-brand rebuild
  • Page built and deployed
  • Search-page noindexed
  • Localize images
  • Wire form + call tracking
  • Swap in real reviews
  • Your approval
Open full page →
07

Where this goes from here

Outcomes from the Aug 3 kickoff and the standing rhythm from here.

  1. Weekly call: Mondays 11:00 AM Eastern. This page is the standing agenda; the sign-off list at the top is always current.
  2. Coming from your side: ServiceTitan access, business profiles for the three OpCos, expanded Google Ads access, DNS for the landing page subdomains (your technical contact looped in for tracking numbers).
  3. Coming from ours: the import-gap hunt (56/95/79 vs 52/67/51), profile-checked negative lists, same-day pushes as you approve sign-off items, and this hub kept live as the visibility layer.
  4. Then the value layer: once booked jobs flow correctly, we set cost-per-booked-job targets per OpCo with your average tickets and margins, and start steering budget toward higher-value jobs, market expansion for Pride included.
  5. The other 10 OpCos: once these three are humming, the same format scales one column per account.