Stop guessing where to move your media budget
Anomaly detection built on deduplicated data
- ROAS decay detectionTwo 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 detectionSymmetric to ROAS decay — detects significant cost-per-acquisition increases using the same dual-method approach on deduplicated conversion data.
- Validation holds reduce noiseMedium-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 optimization via response curve equalization
- Hill function response curvesEach 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 equalizationThe 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 recommendationsIf 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.
Every recommendation includes a verdict
- 14-day observation windowAfter a recommendation is followed, TrustData captures the ROAS baseline snapshot and begins tracking. Verdict calculation starts after 14+ days of elapsed time.
- Control group adjustmentChannel-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 verdictswinner (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.
Anomaly cards through their full lifecycle
- Anomalies tabUnfollowed 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 tabUnfollowed optimization cards (with spend_delta). Recommended allocation change per campaign, backed by response curve evidence and marginal ROAS comparison.
- Active & Concluded tabsActive 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.