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 & ROAS are only part of the story

Most campaign reports treat revenue as a proxy for profit. While directionally helpful, the story changes when you account for COGS, churn, and CLV.

Campaign ROAS

3.3x

When your blended gross margin of 67% is considered, your actual ROAS for this campaign is 2.21x.

Margin-Adjusted ROAS

Brand Exact 4.2x 2.81x
NonBrand Core 3.1x 2.08x
Shopping - All 2.8x 1.88x
Competitor KW 2.2x 1.47x
Display Retarget 1.9x 1.27x
Trellis attribution analysis dashboard showing wasted spend and profit impact by attribution source
Campaign Changelog
Apr 2026 Mar 28 – Apr 14
Budget Apr 14

Daily budget reduced

$150 $95 −37%

Bid Strategy Apr 9

Switched to Target CPA

Manual CPC tCPA $28.00

Audience Apr 3

In-market segment added

Home & Garden · Observation

Ad Copy Mar 28

RSA headline rotation updated

4 headlines · 2 descriptions

Conv. Rate vs. Changes 30d
Mar 28 Apr 3 Apr 9 Apr 14
Budget Bid Audience Ad Copy

Ad insight, tuned to your business

See what your spend actually earns

  • See which campaigns are profitable after product costs — not just what the platform reports
  • Validate whether reported conversions match your real orders
  • Get a full narrative report tuned to your account, not a generic template

Act with confidence

  • Follow recommendations grounded in enough data to act on
  • Review the case for and against every major change before committing
  • Start a changelog that connects each decision to its measured outcome

Build a decision trail

  • Trace six months of changes to their actual impact
  • Spot trends that exist nowhere else — across periods and across platforms
  • Know exactly what worked, what didn't, and what to try next
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.

Built for how you work.

Solopreneur

Running your own ads across 1-2 platforms

  • Hours lost in CSVs
  • Revenue shown, not profit
  • No time to track what changed

Trellis gives you confidence in minutes, not hours. Every audit tuned to your margins.

Small Business

In-house marketer accountable to leadership

  • Can't connect spend to revenue leadership cares about
  • Changes go untracked
  • Multiple platforms, no full picture

Connect spend to real business outcomes. Cross-platform visibility with longitudinal tracking.

Marketing Agency

Managing ads across multiple client accounts

  • Audit reports take hours per client
  • Inconsistent methodology
  • More accounts, same headcount

Every audit follows the same methodology, tuned to each client's business. Scale with confidence.

Four findings. Each one changes the decision.

3.1× Platform-reported ROAS

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.

COGS-Adjusted Profitability
CPC increase over six days

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.

Changelog-Driven Trend Detection
24% Conversion over-count

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.

Attribution Verification
60% Conversions at risk

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.

Hidden Value Detection

Insight that pays for itself.

A freelance PPC audit costs $400–$1,200. Trellis starts at $69/month.

Monthly Annual Save ~20%

Solopreneur

Starter

$69 /mo

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

  • 1 ad platform (Google or Microsoft)
  • 2 audits per month (Core mode)
  • COGS-adjusted profitability
  • Confidence-gated recommendations
  • 90-day data retention

Optional add-ons

  • + Changelog — $15/mo
  • + Datamart trends — $29/mo
  • + Additional platform — $25/mo
Start with Starter
Most Popular

E-commerce Business

Growth

$179 /mo

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

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

Optional add-ons

  • + COGS CSV upload — $25/mo
  • + Shopify integration — $39/mo
  • + Additional platform — $25/mo
Start with Growth

Marketing Agency

Agency

$89 /mo

per account / 3-account minimum

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

  • All Growth features per account
  • 6 audits per account per month
  • 24-month data retention
  • Cross-client dashboard
  • Volume pricing: 6–10 accts $79, 11–20 $69
  • MCC credential management
  • Per-client data isolation
  • Scheduled audits per account
Talk to us

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

Need extra audits? Prepaid packs available: 1 for $15 · 3 for $39 · 5 for $59

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