Skip to main content

Discover personalized insights into paid search campaigns

Enriched with your first-party data and deep contextual awareness. Unlock growth opportunities and eliminate unprofitable spend.

Trusted by brands investing in smarter paid search™

Client logo Client logo Client logo Client logo Client logo Client logo
The Catalyst Audit℠ Advantage

Ad platforms report what already happened, but in total isolation to operations

The Catalyst Audit is accretive by design. Each cycle layers deeper context, tighter confidence, and sharper recommendations on top of everything that came before.

CPA and ROAS are only part of the story.

Most campaign reports treat revenue as a proxy for profit. A campaign with a 4x ROAS can lose money at 35% gross margin. Without your actual product costs in the equation, the numbers look fine while the business bleeds margin.

Campaign ROAS

3.3x

After 67% margin: 2.21x

After COGS

Brand Exact 2.81x
NonBrand Core 2.08x
Shopping 1.88x
Competitor KW 1.47x

AdAdditiveAdvancedAdaptive insight, tuned to your business

01

See what your spend actually earns

Trellis applies your actual gross margin to every campaign. You see which spend is profitable after product costs — not just what the platform reports. Conversions are cross-referenced against your real order data.

COGS-adjusted profitability
02

Act with confidence, not guesswork

Every recommendation passes a statistical confidence gate before it reaches you. If the data doesn’t support a change, Trellis says so rather than filling pages with low-confidence suggestions. And every significant recommendation includes the strongest case against acting on it, so you understand both sides of the decision before you commit.

Confidence-gated recommendations
03

Build a decision trail that compounds

Trellis connects every bid strategy adjustment, budget shift, and campaign structure change to its measured outcome. At month one it’s a log. At month six it’s a record of what worked, what didn’t, and what to try next.

Changelog-driven insight
Start your first audit

Plans from $55/month. Cancel anytime.

Analytical Methodology

Three dimensions of confidence. Not one score.

Most audit tools give you a single confidence indicator. A score, a color, a thumbs-up. Trellis measures three independent dimensions before a recommendation reaches your report: the statistical weight of your conversion data, the longitudinal depth of your audit history, and the richness of the business context you've connected, from gross margin through attribution-verified orders to SKU-level product costs. All three must clear their thresholds. If any falls short, the audit tells you exactly what's missing and what to connect next.

Every claim in a Trellis audit is tagged with its evidence basis: measured fact, statistical inference with confidence range, projection with stated assumptions, or insufficient data. You always know what's grounded and what's estimated. This is not a generated summary. It is a structured analysis built on statistical modeling, deep learning, and your actual business economics, tuned to your account's maturity, history, and margin profile.

Every significant recommendation includes the strongest case for not following it. Not as a disclaimer, but as part of the methodology. A recommendation that hasn't survived its own counter-argument isn't ready for yours.

Say goodbye to generic reports. Trellis adds meaningful context, with personalized recommendations based on your business goals. No more manual CSV parsing, generic AI feedback, or presumptions and guesses.

Campaign · Performance
Search | Brand | Brand+ Google Ads
Last 30 days Audited 2h ago
!
ROAS below break-even threshold
Reported ROAS of 2.41× sits under your COGS-adjusted break-even of 1.93×. Spend is unprofitable against actual product margins, not platform cost.
Review
ROAS (reported)30d
2.41×
+0.48×vs. break-even
CPAblended
$48.20
+$11.80over target
Break-even ROASCOGS + fees
1.93×
Margin 38% · AOV $126
Ad groups · 14 PerformanceChangelogRecommendations
ROAS Trend
ROAS Break-even
4.0×3.0×2.0×1.0×
OctNovDecJanFebMarApr

See profitability, not just performance

Trellis applies your actual gross margin to every campaign. You see which spend is genuinely profitable after product costs and where your budget is working hardest.

Investigation · #INV-2418
ROAS Analysis – Search | Shopping | Kitchen
Investigating…
High priority
3
Signals
7d
Window
$11.4k
At risk
Cross-referencing platform changelog, search-terms data, and analytics. Three contributing factors identified — correlating with the regression beginning Apr 18.
Contributing factors
Sorted by impact Auto-correlated
Bid strategy
Switched from Target ROAS 380% to Maximize conversions on Apr 17 — the day before performance dropped.Changelog · edited by automation rule "scale_winners_v3"
96%
Confidence
Keyword quality
Quality Score on 4 of 11 top-spend keywords fell from 8 → 5; landing-page experience flagged "below average".Detected via daily QS snapshot · accounts for 41% of group spend
82%
Confidence
Data discrepancy
Platform-reported conversions +18% vs. analytics source-of-truth — gap widened over the same window.Cross-checked Google Ads ↔ GA4 ↔ Shopify orders · attribution drift suspected
71%
Confidence
Synthesizing
Recommendation in ~12s

Understand why, not just what

Every audit investigates account structure, bid history, and performance trends together. It explains what's driving results and whether the data supports a change.

audit_recommend.py
trellis/audits/dsa-us/audit_recommend.py
running · pid 4812
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# trellis/audits/dsa-us/audit_recommend.py
# Generates ranked recommendations for the dsa-us account audit.
 
from trellis.audit import Audit, Finding, Recommendation
from trellis.platforms.google_ads import changelog, metrics
from trellis.stats import welch_t, cusum, bh_correct
from datetime import datetime, timedelta
 
# ─── Configuration ───────────────────────────────────────────────────────
ACCOUNT_ID = "dsa-us"
LOOKBACK_DAYS = 28 # 4-week pre/post window
MIN_SAMPLE_SIZE = 120 # clicks per arm before testing
ALPHA = 0.05 # BH-corrected family-wise rate
MIN_LIFT_PCT = 0.04 # ignore deltas below 4%
 
# ─── Pipeline ────────────────────────────────────────────────────────────
@audit.step(name="recommend", depends_on=["investigate"])
def build_recommendations(audit: Audit) -> list[Recommendation]:
"""Rank account-level fixes by expected lift × confidence."""
since = datetime.utcnow() - timedelta(days=LOOKBACK_DAYS)
edits = changelog.fetch(ACCOUNT_ID, since=since, kinds={"BID_STRATEGY", "KEYWORD", "BUDGET"})
prior, post = metrics.split_by_edits(ACCOUNT_ID, edits, window=LOOKBACK_DAYS)
# Welch's t per metric × CUSUM for changepoint, then BH multiple-test correction.
deltas = []
for edit in edits:
if prior[edit.id].clicks < MIN_SAMPLE_SIZE:
continue # under-powered, skip
t, p = welch_t(prior[edit.id].cpa, post[edit.id].cpa)
cp = cusum(post[edit.id].daily_cpa, threshold=3.0)
deltas.append((edit, t, p, cp))
 
significant = bh_correct(deltas, alpha=ALPHA, key=lambda d: d[2])
significant = [d for d in significant if abs(d[1]) >= MIN_LIFT_PCT]
 
recs = []
for edit, t, p, cp in significant:
recs.append(Recommendation.from_edit(edit, t_stat=t, p_value=p, cusum=cp))
 
recs.sort(key=lambda r: (-r.expected_lift * r.confidence, r.p_value))
recs = recs[:3] # top-3 only
audit.attach(step="recommend", payload=recs)
return recs
 
if __name__ == "__main__":
a = Audit.load(ACCOUNT_ID)
build_recommendations(a)
a.publish(channel="slack#dsa-us", format="digest")
print(f"emitted {len(a.recs)} recommendations")
 
python 3.12 UTF-8 LF spaces: 4 ln 36, col 5

Every decision builds on the last

Recommendations include the case for and against each change. Log what you changed and why; next month's audit knows what happened and starts where this one left off.

Catalyst Audit℠ — Shopping | Kitchen
01
Recommendation High confidence · 92%

Revert bid strategy on Shopping | Kitchen from Maximize Conversions to Target ROAS 380%.

Platform ROAS 2.41x
After COGS 1.48x
Break-even 1.93x
Sample 312 conv.
Counter-argument

The Maximize Conversions strategy has run for only 11 days. Seasonal traffic patterns could partly explain the CPA increase. However, CUSUM changepoint analysis dates the regression to the strategy switch, not the seasonal onset 4 days later. The decision flips if seasonal variance accounts for more than 40% of the observed increase.

Related: Bid strategy switched Apr 17 · automation rule scale_winners_v3

Who it’s for

Personalized audit reports, tuned to your business.

Every audit applies your actual gross margin, validates platform-reported conversions against your order data, and delivers confidence-gated recommendations with the counter-argument included. The report reads like a specialist’s assessment — because the methodology behind it is one.

Whether you’re running your own ads or managing a portfolio of client accounts, Trellis calibrates the depth, focus, and recommendations to your situation. One methodology. Adapted to how you work.

Solopreneur

$500–$3K/mo ad spend

Clear answers without the spreadsheet.

See which campaigns are actually profitable after product costs. Every audit is tuned to your business economics — not just what the platform reports. Less time in dashboards, more confidence in every decision.

Start with a one-time audit

Small Business

$3K–$30K/mo ad spend

The report your leadership will actually read.

Connect ad spend to the revenue that matters to your business. Track how campaigns, bids, and budgets evolve over time — and what each change produced. Phased recommendations grounded in best practices and your actual data.

See Growth plan

Marketing Agency

3–20 client accounts

Same rigor, every client, every time.

Every audit follows the same methodology, tuned to each client’s business. Manage more accounts with confidence — consistent insight across every account you manage, without scaling your team.

See Agency pricing

Four findings. Each one changes the decision.

COGS-Adjusted Profitability 3.1× Platform-reported ROAS

Near break-even after product costs

The margin story the platform doesn’t tell.

A Shopping campaign reporting 3.1× ROAS appeared to be a top performer. The audit overlaid SKU-level margins and revealed the campaign was heavily weighted toward promotional products — contribution margin was well below the account average. What looked profitable at the platform level was operating near break-even after actual product costs.

Changelog-Driven Detection CPC increase over six days

Cause traced to two config changes

Every change tracked to its measured outcome.

CPC doubled over six days with no explanation in the platform UI. The changelog traced the shift to a bid strategy change followed by a device modifier adjustment two days later. The audit connected the configuration change to the performance collapse — cause and effect, with timestamps. The platform shows what happened; the changelog shows why.

Attribution Verification 24% Conversion over-count

150 verified from 197 reported

Platform numbers checked against your actual orders.

Google Ads reported 197 conversions for a campaign over 30 days. Cross-referencing against first-party order data with UTM attribution revealed 150 verified purchases — a 24% over-count from the platform blending paid and organic Shopping clicks. The audit recalculated CPA against verified conversions only.

Hidden Value Detection 60% Conversions at risk

Critical conversion path preserved

The audit caught what routine hygiene would have killed.

A set of branded keywords flagged for removal during routine account hygiene appeared to be waste. The audit revealed that close-variant matching on those terms was carrying 60% of the core campaign’s actual conversions. The “cleanup” action would have eliminated the campaign’s most efficient conversion path.

Insight that pays for itself.

A freelance PPC audit costs $400–$1,200. Trellis Core starts at $99/month billed annually.

Monthly Annual Save ~20%

Core

$129 /mo

At $5K/month ad spend, one recommendation saves $250 — nearly 2× ROI in month one.

  • Google + Microsoft Ads included
  • 2 audits per month (Core mode)
  • COGS-adjusted profitability
  • Confidence-gated recommendations
  • 90-day data retention

Optional add-ons

  • + Changelog — $25/mo
  • + Datamart trends — $69/mo
Start with Core
Most Popular

Pro

$299 /mo

Changelog and datamart create 6 months of decision history that exists nowhere else.

  • Google + Microsoft Ads included
  • 4 audits per month (Core or Enhanced)
  • Changelog included
  • Datamart with 12-month trends
  • Recommendation tracking
  • Scheduled audits

Optional add-ons

  • + COGS CSV upload — $39/mo
  • + Shopify integration — $59/mo
Start with Pro

Agency

$149 /mo

per account / 3-account minimum

Same methodology across every client. Audits that took hours now take minutes.

  • All Pro features per account
  • 6 audits per account per month
  • 24-month data retention
  • Cross-client dashboard
  • Volume pricing: 6–10 accts $129, 11–20 $109
  • MCC credential management
  • Per-client data isolation
  • Bulk audit scheduling
Talk to us

Not ready to subscribe? Start with a single audit — $249

Need extra audits? Prepaid packs available: 1 for $25 · 3 for $59 · 5 for $89

Questions worth asking.

Every recommendation requires at least two measured data points from your account. Each one includes the evidence, a risk score (1–5), the strongest counter-argument, and a monitoring plan with specific thresholds. Recommendations are gated by confidence tiers — if a campaign has fewer than 15 conversions, Trellis says 'not enough data' rather than guessing. Every claim is labeled: [FACT] for measured data, [PROJECTED] for estimates with stated assumptions, [INFERRED] for patterns that need more evidence.

Trellis connects to your ad platforms via OAuth — the same authorization method used by Google and Microsoft themselves. The connection is read-only: Trellis pulls performance data for analysis but never modifies bids, budgets, or campaign settings. Your business economics (margins, targets, costs) are encrypted at rest and isolated per account. No data is shared between clients.

Three things your ad platform dashboard won't surface: whether campaigns are profitable after actual product costs (not just revenue), whether platform-reported conversions match your real orders, and what specific configuration changes caused performance shifts. A campaign showing 3× ROAS might be operating near break-even once you factor in product margins. Trellis catches that; the platform UI never will.

Connect your ad platform (OAuth, under 2 minutes), enter your blended gross margin (one number), and run your first audit. Most accounts see their first scored report within 5 minutes of signing up. No CSV uploads required. No technical configuration. Monthly billing with no contracts — cancel anytime.

Trellis works for anyone running Google Ads or Microsoft Ads who wants to understand profitability — from solopreneurs managing $3K/month in ad spend to agencies managing $2M+ across 20 client accounts. The methodology scales: the same confidence tiers, estimation policy, and evidence standards apply whether you're running one campaign or fifty.

Your ad data has more to say.

Unlock valuable insights in less than ten minutes.

Start your audit