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 — 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.

Frequently Asked Questions

Turn paid insights into actions that prove themselves

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