top of page
Typographic Black and Blue.png

How Bach AI Surfaces Campaign Anomaly Alerts Without Crying Wolf

Most ad-account alert systems fire on noise. Daily ROAS dipped 12%? Alert. CPM spiked 18% on a single day? Alert. After two weeks of false alarms, the operator filters the emails. By the time a real anomaly fires, it is buried under the noise.


Bach AI’s alert system uses category-aware variance bands instead of fixed thresholds. Only changes that breach the band for the brand’s specific category, account history, and seasonal context produce an alert. The result: a calm inbox where every alert is worth reading.


The Invisible Problem


Fixed-threshold alerts are noisy because performance metrics have inherent variance. A jewellery D2C with daily spend of ₹50,000 sees daily ROAS swings of ±25% just from natural conversion timing. A beauty D2C sees ±18%. A snack D2C might see ±12%. A single fixed threshold (‘alert if ROAS drops 20%’) catches noise on the jewellery brand and misses real issues on the snack brand.


The downstream cost is operator desensitisation. After three false alarms, the operator stops trusting the alerts. After ten, they filter the emails. The system becomes worse than no alert at all — because the alerts now actively hide real signal.


Category-Aware Variance Bands


Bach AI’s alerting model starts with a category baseline. Each Indian D2C category has its own characteristic variance:


  • Beauty — daily ROAS variance ±18%, weekly ±12%.

  • Apparel — daily ROAS variance ±22%, weekly ±14%.

  • Jewellery — daily ROAS variance ±28%, weekly ±18%.

  • Food and snacks — daily ROAS variance ±12%, weekly ±8%.

  • Home and furnishings — daily ROAS variance ±20%, weekly ±13%.


The brand’s own history then tightens or widens the band. A brand with steady weekly volume gets tighter bands. A brand with frequent campaign launches gets wider bands during active campaign windows.


The Statistical Model


Behind the alerts, Bach AI runs a rolling z-score model on each metric:


  1. Baseline calculation — trailing 28 days of the metric, excluding outliers.

  2. Standard deviation of the baseline.

  3. Today’s value expressed as z-score = (today − baseline mean) / standard deviation.

  4. Alert threshold — |z| > 2.0 for individual-metric alerts, |z| > 1.5 for two-metric correlated anomalies.


This catches statistically meaningful breaks regardless of the brand’s natural variance level. A daily ROAS drop that is ±15% is meaningful for a snack brand (high z-score) but routine for a jewellery brand (low z-score).


Two-Metric Correlated Anomalies


Real problems usually show in multiple metrics at once. Bach AI is more confident — and louder — when it sees correlated breaks:


  • CTR drops + CPM rises = creative fatigue probably accelerating.

  • Spend drops + impressions drop = delivery issue, possibly creative rejected or audience locked.

  • ROAS drops + conversion rate drops = landing-page or pricing issue.

  • Frequency rises + CPM rises = audience saturation in the auction.

  • Spend rises + ROAS drops = budget step too aggressive, possible learning reset.


Single-metric alerts are noted but not always pushed to email. Correlated alerts get pushed immediately with the underlying interpretation.


Seasonal Awareness


Indian D2C calendars have predictable variance spikes:


  • Diwali week — CPMs spike 40-80% across most categories. The model widens the band during the window.

  • End-of-season sale — conversion rates spike, average order value drops. Variance recalibrates.

  • IPL final week — entertainment-adjacent categories see CPM spikes; the model accounts for the calendar.

  • Republic Day and Independence Day sale windows — known anomaly windows excluded from baseline.

  • Wedding season (October-February) — jewellery and apparel variance widens.


The Alert Format


When an alert fires, it includes:


  • The metric, the magnitude, and the z-score — so the operator can see whether the model is being conservative or aggressive.

  • The likely cause — Bach AI’s interpretation based on correlated signals.

  • The recommended action — concrete, one-click where applicable.

  • A link to the underlying chart — for operators who want to verify.


Alert Routing


Different alerts go to different channels:


  • Critical correlated anomalies — email + dashboard banner.

  • Individual high-z alerts — dashboard alert center.

  • Watch-band signals — surfaced in the daily briefing but not pushed.

  • Seasonal calibration notes — surfaced in the weekly briefing.


The default routing prevents the operator’s inbox from filling up. Most alerts stay in the dashboard, where they can be reviewed in batch.


The ₹ Impact


Across Indian D2C accounts on Wittelsbach AI in Q1 2026:


  • Alert noise reduction: 84% fewer alerts vs fixed-threshold systems.

  • True positive rate on emailed alerts: 92%.

  • Average time-to-detection on real anomalies: 3 hours (vs 24-48 hours of manual checking).

  • Margin protected by faster detection: ₹40,000-1.1L/month on typical accounts.


How Wittelsbach AI Operationalises Alerts


The goal is calm with confidence. Operators trust Bach AI alerts because they only fire on real issues, and they come with a diagnosis and a fix. Run a free Meta Ads audit at [app.wittelsbach.ai](https://app.wittelsbach.ai).


Frequently Asked Questions


How long before the model has enough data to use account-specific baselines?


Bach AI starts with category baselines on Day 1 and shifts toward account-specific baselines as data accumulates. The transition typically takes 30-45 days. Before that, category baselines apply with slightly wider variance bands to account for the model’s lower confidence. Most operators see a measurable reduction in alert volume around Day 30 as the model tightens.


Can I tune the alert thresholds?


Yes. The alert sensitivity is a slider — conservative, balanced, or aggressive. Most brands stay on balanced. Conservative mode suits very large spenders who want to minimise interruption. Aggressive mode suits new accounts where every signal matters during the early optimisation period.


How does the model handle account-level changes like a major budget shift?


Bach AI tracks intentional changes — budget step-ups, audience refreshes, creative swaps — and excludes them from the variance baseline calculation. The first 3-5 days after a known change get widened bands so the model does not panic on the natural adjustment period. Unannounced changes get treated as anomalies until proven otherwise.


Does the system alert me if nothing happens for a while?


Yes, in a specific case: if an ad set has not generated conversions for longer than its 14-day historical median, that is itself an anomaly. ‘Silent failures’ where spend continues but conversions vanish are one of the most expensive bug classes in Indian D2C. The model surfaces these as a distinct alert category.


Can I see what would have alerted if my threshold were tighter?


Yes. The dashboard alert center shows all surfaced anomalies, including the ones that did not meet your threshold. This is useful for learning the model’s sensitivity — operators can review the ‘would-have-alerted’ list weekly to decide if any patterns are being missed. Some adjust their threshold after seeing where the model was being too quiet.

Comments


bottom of page