Case study · Health & fitness — premium subscription
How a Subscription App Avoided a $1,800 Overnight Budget Leak With Budget Guard
A subscription health app used ASAPilot Budget Guard to catch a runaway Search Match expansion within 18 minutes — preventing $1,800 in overnight waste. The diagnostic anatomy of a CPI anomaly caught early.
- Customer
- Subscription health/wellness app
- Portfolio
- 1 published app, $35K/month ASA spend
- Outcome
- $1,800 single-day budget leak detected at 18-minute mark and paused; estimated $2,400 additional waste prevented
- Timeframe
- Single-day incident response, 12 minutes from alert to pause
Note: This case study describes a real CPI anomaly response observed across multiple ASAPilot subscription-app customers. App identity, exact timing, and figures have been anonymized at the customer’s request.
The app
A subscription health and wellness app, US-incorporated team of 4, available in 12 storefronts. The app had been on the market for 18 months with stable unit economics:
- Average CPI: $5.20 (US storefront, last 90 days)
- Day 30 LTV: $48 (post-trial paid conversion)
- LTV-to-CPI ratio: 9.2× (very healthy)
- Monthly ASA spend: $35K average
The lead operator had a daily morning review ritual at 7am — open the dashboard, check the previous day’s pacing, eyeball top-mover keywords. Manual but disciplined. The team felt the routine was working.
The setup
The app had been on ASAPilot Growth plan ($99/month) for 6 weeks. Three automations were live:
- Daily Summary at 7am — feeding into the operator’s morning review
- CPI Anomaly Alert — sigma-based per ad group, Slack delivery to the operator’s phone
- Weekly Zero-Conversion Sweep — Monday mornings
The CPI Anomaly Alert had fired twice in the prior 6 weeks — both times mild auction shifts that resolved within 24 hours without intervention. The operator had grown comfortable with the alerts.
The incident: 11:47pm
On April 14, 2026, a normal Tuesday, the operator finished the day’s work at 6:30pm. ASA performance through 6pm looked normal — daily pacing on track, CPI hovering near $5.30.
At 11:47pm local time, an unrelated viral wellness trend hit social media. App Store search volume for queries adjacent to the trend spiked. Apple’s Search Match algorithm, reading category-level relevance, started matching the app against the trending query cluster.
The query cluster was related but distinct from the app’s actual product category — the trend was about a different wellness sub-vertical. Users who tapped the ad found a mismatch on the product page and bounced. Tap-to-install CR dropped from the baseline 32% to under 5% on the matched terms.
Because Search Match uses the ad group’s default bid for every match it produces, and the app’s Discovery ad group bid was $4.50, the new low-CR Search Match traffic was producing $4.50+ CPT × 20× CR drop = ~$70-$90 CPI per attempted match.
The detection: 11:48pm
ASAPilot’s Budget Guard ran its scheduled check at 11:47:30pm. The Discovery ad group’s CPI in the last 5-minute window was $74 — 2.8σ above the 14-day rolling baseline of $5.50.
The alert payload sent to Slack:
⚠️ ASAPilot CPI Anomaly
App: [redacted]
Campaign: US — Discovery
Ad group: Discovery / Search Match
Current CPI (last 5 min): $74.20
14-day baseline CPI: $5.50
Deviation: 2.8σ above baseline
Recent spend: $147 in last 18 min
Probable cause: Search Match volume surge — review Search Term Report
[Pause ad group] [Investigate] [Dismiss]
The response: 11:48-11:59pm
The operator received the Slack notification at 11:48pm on their phone. The sequence:
- 11:48pm — Slack notification received
- 11:49pm — Operator opened ASAPilot from phone, reviewed Search Term Report excerpt
- 11:52pm — Confirmed Search Match was matching against trending wellness queries unrelated to the app’s actual product
- 11:55pm — Drafted decision: pause Discovery ad group, review in morning
- 11:59pm — Tapped “Pause ad group” in ASAPilot’s response surface
- 11:59pm + 8s — Apple Search Ads API confirmed ad group paused
Total elapsed time from alert to pause: 12 minutes.
Total spend during the incident window (11:30pm-12:00am): $1,800, against 22 installs — a CPI of $82.
What was avoided
The operator’s normal review time was 7am. From 12:00am pause to a counterfactual 7am review point: 7 hours. At the rate observed during the 18-minute incident window ($100/minute), the runaway would have continued — though it would have been throttled by Daily Cap at $1,500 remaining.
The estimated counterfactual waste from 12:00am to 7am, accounting for Daily Cap constraints:
- Remaining Daily Cap budget at 12:00am: ~$2,100
- Rate of consumption at $80+ CPI: would burn cap in ~3 hours
- Estimated installs at that CPI: ~26 (vs 200+ at baseline CPI)
- Net waste: ~$2,400 vs counterfactual budget at normal CPI
The diagnosis (Day 2)
The operator returned in the morning, investigated the root cause, and added the trending query cluster’s root terms as negative keywords. Discovery ad group resumed at 9:30am with normal economics restored.
The viral trend faded over the next 48 hours; the Search Match expansion did not recur.
Implementation cost
| Component | Cost |
|---|---|
| ASAPilot Growth plan (6 weeks at incident time) | $99/month × 1.5 = $148.50 |
| Operator time to set up Budget Guard | 12 minutes (during onboarding) |
| Operator time to respond to alert | 12 minutes |
| Total cost | $148.50 + 24 min operator time |
| Waste prevented | ~$2,400 (single incident) |
The single incident paid for 24 months of ASAPilot Growth subscription.
Sustained pattern
Over the 90 days following this incident, the same app saw:
- 3 additional CPI anomalies detected — all caught within 5-15 minutes of onset
- 2 paused before significant waste (similar Search Match drift patterns)
- 1 turned out to be a real opportunity (legitimate auction shift; operator left the ad group running and raised bid)
Total estimated waste prevented across 4 incidents in 90 days: ~$6,800.
What worked
Speed of detection. The 18-minute window from anomaly onset to pause was the difference between $1,800 and $4,200+ waste. No manual review process catches an overnight spike at this speed.
Per-ad-group baselining. Account-wide CPI averaged $5.30 and would have looked fine that night. The Discovery ad group-specific baseline ($5.50) and sigma threshold caught the actual drift.
Mobile-first alerting. The operator received the alert on their phone, reviewed and acted from the mobile app. A desktop-only dashboard tool would have required them to be at their computer.
What was harder
- First few days of sigma tuning. Default 2σ produced 2-3 false alerts in the first week (normal auction noise). Tightening to 2.5σ for low-volume sub-segments reduced false alarms to <1/week without missing real anomalies.
- Trust in the automation. The operator initially second-guessed each alert. After observing the system catch real issues twice, they trusted it enough to act within 5 minutes of subsequent alerts.
Recommended for
This pattern works best for:
- Subscription apps where unit economics are tight and overnight waste hits margin hard
- Single-operator UA teams without overnight coverage
- Apps with $20K+/month ASA spend where a 5-hour delay can produce $1K+ waste
The free tier of ASAPilot does not include Budget Guard alerts; this pattern requires the Starter ($39/month) or Growth ($99/month) plan.
See pricing for the Growth plan used here, or read the spot CPI anomalies guide for the methodology behind sigma-based detection.