Paid Action Layer

Stop guessing where to move your media budget

TrustData detects anomalies in your deduplicated paid metrics, recommends precise budget reallocations using response curve optimization, and proves each change worked with a control-group-adjusted before/after verdict.

Anomaly detection

Anomaly detection built on deduplicated data

Most anomaly detection runs on platform-reported numbers. TrustData's runs on your deduplicated first-party metrics, the only numbers that haven't been inflated. ROAS drops detected here are real drops.

ROAS decay detection

Two methods run in parallel: z-score against a 30-day rolling baseline (threshold z < -2.0) and linear regression slope over 14 days (threshold < -1.5% per day). Both required to surface a card.

CPA spike detection

Symmetric to ROAS decay. Detects significant cost-per-acquisition increases using the same dual-method approach on deduplicated conversion data.

Validation holds reduce noise

Medium-severity anomalies enter a watch period before surfacing as actionable. High z-score drops (z < -3.0) are immediately actionable. Medium drops wait 7–14 days to confirm the signal is real, not a one-day blip.

Budget optimizer

Budget optimization via response curve equalization

The optimizer maximizes your total output from a fixed budget by finding the allocation where marginal ROAS is equal across all campaigns. When marginal returns are equalized, no budget shift can improve total output. That's the mathematical optimum.

Hill function response curves

Each campaign's spend-to-revenue relationship is modeled as a Hill function, capturing saturation effects that linear models miss. Curves are rebuilt every Monday from your actual deduplicated revenue data.

Marginal ROAS equalization

The optimizer uses scipy SLSQP to find the spend allocation across campaigns that maximizes total revenue subject to your total budget constraint. Each recommended shift must exceed $500 to surface as a card.

iROAS-calibrated recommendations

If an incrementality calibration factor exists for a channel, the optimizer uses your true incremental ROAS, not platform-reported ROAS, for response curve modeling. Tested channels get materially better recommendations.

Before/after verdicts

Every recommendation includes a verdict

Following a budget recommendation is a hypothesis. TrustData treats it as one, tracking the outcome for 14 days with a control group to separate the signal from ambient ROAS movement.

14-day observation window

After a recommendation is followed, TrustData captures the ROAS baseline snapshot and begins tracking. Verdict calculation starts after 14+ days of elapsed time.

Control group adjustment

Channel-level ROAS drift across all paid channels during the same period is the natural control. The adjusted delta filters out market-wide ROAS movements; only your campaign-level change counts.

Clear verdicts

winner (adjusted delta ≥ 0.3 ROAS units), likely_winner (≥ 0.1), no_effect (≤ -0.1), or inconclusive. These verdicts feed back into the response curve model for the next optimization cycle.

Card lifecycle

Anomaly cards through their full lifecycle

From detection to verdict, every paid action has a structured lifecycle. The four-tab dashboard gives you a clear view of what's new, what's active, and what the record shows.

Anomalies tab

Unfollowed anomaly cards (no spend_delta). ROAS decay and CPA spike cards with context snapshot including baseline ROAS, current ROAS, z-score, and days in decline.

Budget shifts tab

Unfollowed optimization cards (with spend_delta). Recommended allocation change per campaign, backed by response curve evidence and marginal ROAS comparison.

Active & Concluded tabs

Active shows followed cards tracking their 14-day window. Concluded shows the full before/after record: baseline ROAS, post-change ROAS, control drift, adjusted delta, and verdict.

What's included

Every component of the Paid Action Layer.

Deduplicated metric detection

All anomaly detection runs on first-party deduplicated ROAS and CPA, never on platform-reported numbers.

Dual detection methods

Z-score vs 30-day rolling baseline plus linear regression slope over 14 days. Both run daily after the dbt pipeline.

Validation holds

Medium anomalies held for 7–14 days before surfacing. High-severity anomalies (z < -3.0) surface immediately. Hold expiry re-runs detection on fresh data.

Hill function response curves

Spend → revenue modeled via Hill saturation function. Rebuilt weekly on Monday from actual deduplicated revenue data per campaign.

SLSQP budget optimizer

scipy.optimize.minimize maximizes Σ revenue_i(spend_i) subject to total budget constraint and per-campaign bounds. Per-campaign spend bounds configurable.

iROAS calibration integration

If a CalibrationFactor exists for a channel, the optimizer multiplies r_max by the effective_factor (decayed). Tested channels get incrementality-aware recommendations.

Profit-aware optimization

If AdvertiserConfig is set with blended margin and goal = efficiency/profitability, the optimizer uses profit curves instead of revenue curves. ROI 2–4 waterfall available.

Before/after verdict tracking

14-day observation window, control-group-adjusted delta, winner/likely_winner/no_effect/inconclusive verdicts. Results stored in outcome_tracked JSON.

FAQ

Direct answers.

14-day free trial

Turn paid insights into actions that prove themselves

14-day free trial. Detect anomalies, optimize your budget, and measure what actually moved the needle.