ACoS does not spike in a day. It creeps. A campaign running at 28 percent in early spring can drift to 34, then 41, then 47 percent over several weeks without any single day looking alarming enough to warrant a manual review. By the time the monthly report surfaces the number, a full billing cycle of margin has already gone out the door.

Harbor Kitchen discovered this firsthand. Three weeks of quiet ACoS drift, from 28 to 47 percent, across their core sponsored product campaigns. No single morning looked catastrophic. No alert fired. The end-of-month pull made it visible, and by then the damage was done.

The problem is not the drift itself. Drift is manageable when you catch it early. The problem is the detection lag. A month-end report is an expensive way to find out that something started going wrong three weeks ago. Nobody re-reads 40 campaigns every morning hunting for the slow creep. That is exactly the job performance rules exist to do.

Why real-time is the wrong lens

What real-time sees at 10am
What settled data shows at 6am
$40 spend, 0 attributed sales. ACoS: incalculable.
$40 spend, 7 attributed sales. ACoS: 22%. Strong.
Rule fires. Campaign paused or budget cut immediately.
Rule evaluates complete picture. No action needed.
Sales from morning clicks attributed hours later. Too late to undo.
All prior-day attribution has landed. Numbers are real.

Here is what a real-time rule sees at 10am on a Tuesday: Harbor Kitchen's top sponsored product campaign has spent $40 with zero attributed sales. ACoS looks catastrophic. If an automated rule is watching that number and is configured to fire when ACoS clears a threshold, it panics. It cuts the budget, reduces bids, or pauses the campaign outright, interpreting the absence of attributed sales as failure.

By dinner, attribution has caught up. The $40 that looked stranded now shows seven sales, attributed to clicks that landed this morning. ACoS: 22 percent. The campaign was performing beautifully. The rule just killed it based on data that was never accurate in the first place.

This is not an edge case. It is the structure of how Amazon advertising works. Amazon attributes sales to clicks, and those clicks can convert hours or even days after they happen. A shopper who clicks your ad at 9am might complete the purchase at 6pm. A shopper who clicks on Monday might buy on Wednesday after seeing a sponsored display ad the same morning. The reporting catches up, but the window it takes to catch up is long enough that any read of today's data is, at best, incomplete.

Real-time automation on Amazon PPC is not aggressive. It is reckless. It punishes campaigns for sales that have not landed in the report yet.

Reading settled data on purpose

Off Hours performance rules evaluate once daily, at 6am in the campaign's local timezone. By that point, the prior day's data has had 12 or more hours to settle. Attribution for the previous evening's purchases has caught up. The numbers you are reading are complete.

The timing is deliberate. Amazon's reporting documentation notes that data is typically finalized within 12 hours after the end of the day it covers. Evaluating at 6am against yesterday means you are always reading a full picture, not a work in progress.

This is why performance rules run on a separate daily schedule rather than the same 15-minute engine that handles dayparting, budget rules, and event rules. Frequent evaluation of incomplete data produces exactly the phantom-problem reaction described above. Once daily, against settled data, is not a limitation. It is the correct answer to how Amazon attribution actually works.

The cost of waiting for complete data is one day of delay between a problem emerging and a rule catching it. For most ACoS and spend patterns, that is a fully acceptable tradeoff. The cost of acting on incomplete data is pausing a healthy campaign at the worst possible moment. That tradeoff is not acceptable at all.

Baseline-relative, not dollar-absolute

Fixed threshold
Campaign A (usually 21% ACoS)Alert at 40%
Campaign B (usually 38% ACoS)Alert at 40%
ResultA drifts 19 pts before anything fires. B never fires.
Baseline-relative
Campaign A (usually 21% ACoS)50% above baseline = alerts at 31.5%
Campaign B (usually 38% ACoS)50% above baseline = alerts at 57%
ResultBoth campaigns caught at their own drift threshold.

A fixed ACoS threshold treats every campaign identically. Set "alert me when ACoS exceeds 40 percent" and you catch one campaign five weeks into drift while ignoring another that has been running at 38 percent its entire life and is still healthy.

Performance rules in Off Hours compare each campaign against its own established baseline. If a campaign has been running at an average of 29 percent ACoS and yesterday came in at 44 percent, that is a 52 percent jump above its own normal. That fires. If a campaign has been running at 38 percent and yesterday came in at 40 percent, it is within range of its own behavior. That does not.

The same logic applies to spend. A campaign that normally runs $85 a day spiking to $170 is a different signal than one that routinely spends $140 reaching $170. The absolute dollar figure is less meaningful than the deviation from what is normal for that specific campaign.

This baseline approach also means legitimate growth does not trigger false alarms. A campaign that expands spend as its performance improves does not start firing alerts just because the absolute numbers crossed a line you drew months ago. The baseline adjusts with the campaign over time. The rule catches drift. It does not flag growth.

For the broader framing on what healthy numbers look like, see what a good ACoS looks like by category and how ACoS vs TACoS affects where you set the ceiling.

Three actions, one ladder

Performance rules do not prescribe a single response. You configure the action when you build the rule, and the options are graduated by consequence.

Step 1
Alert
Recommendation lands in the Off Hours dashboard Recommendations tab and in Slack if connected. No campaign change is made. You review and decide manually. Start here with any new rule.
Step 2
Adjust budget
Rule cuts the daily budget by a percentage you specify. Original budget is stored and ready to restore. Your manual changes always win over any rule. Fully reversible.
Step 3
Pause
Campaign stops. Reason logged. Holds until you restore manually or the triggering condition clears. Reserve this for rules validated over weeks with a deliberate decision behind them.

The right sequence for a new rule is almost always alert first. Run it for one to two weeks. Watch what it flags and whether the triggers match your judgment. When you trust the logic, promote it to budget adjustment. Reserve pause for rules that have been validated over time and where you have made a conscious decision that running the campaign carries more risk than stopping it.

Every action is logged. Recommendations reviewed and dismissed, budget cuts applied by a rule, manual overrides that told the rule it was wrong. Nothing happens silently, and the audit trail is permanent. If a rule makes a change you did not expect, the log shows exactly what triggered it, when it evaluated, and what it changed.

Spend-spike rules: your own normal is the ceiling

A spend-spike rule is a specific type of performance rule that monitors a campaign's daily spend against its own recent run rate rather than a fixed dollar ceiling. It fires when spend jumps significantly above the campaign's established pattern, which can happen when bid competition increases, when a product gains unexpected search volume, or when a broad-match keyword starts pulling traffic it was never targeted for.

Parkway Home set up spend-spike rules across their catalog campaigns after a seasonal keyword started pulling in high-volume, low-intent traffic during back-to-school. Campaign spend doubled in three days without a corresponding improvement in ACoS or conversion rate. The spend-spike rule surfaced a recommendation on day two, before the pattern became a meaningful budget problem.

The rule was not watching a fixed ceiling. It was watching Parkway Home's own established run rate. Which meant it did not fire during a prior peak week when spend legitimately increased and performance held. It fired when the ratio broke: spend up, performance flat. That is the distinction a baseline-relative rule makes that a fixed threshold cannot.

Related

Spend alerts run under every rule, zero setup.

Off Hours includes always-on spend monitoring on every account at no extra cost. For lighter-weight watching without building a full performance rule, see how spend alerts work.

Start free trial

Where recommendations land

When a performance rule generates an alert, it appears in the Off Hours dashboard under the Recommendations tab. Each recommendation shows the campaign name, the metric that triggered it, yesterday's value compared to the established baseline, and the action the rule is configured to take.

If you have connected Slack, recommendations also post to a channel of your choosing. The format is brief: campaign name, what fired, what the rule is set to do. You can act directly from the dashboard or let Slack serve as a morning digest of anything that crossed a threshold overnight.

For accounts managing multiple profiles or clients, recommendations are scoped to the profile they belong to. You see what is relevant without noise from other accounts running alongside it.

Setting your first performance rule

The lowest-risk starting point is an ACoS alert on your largest campaign by spend. Set the threshold at 30 to 40 percent above that campaign's current average ACoS, configure the action as alert only, and let it run for two weeks. If it fires when you would expect it to fire and stays quiet when you would expect silence, the logic is working. At that point you have the data to decide whether to expand coverage or promote the rule to a budget adjustment.

A spend-spike rule is a close second. Pick a campaign where budget overruns have historically been a problem and configure a rule that alerts when daily spend exceeds 60 to 70 percent above recent average. Again, alert only to start. Watch before promoting.

Performance rules that pause campaigns should be reserved for situations where the trigger logic has been validated across several weeks and where a deliberate decision has been made that the cost of letting the campaign run outweighs the cost of a missed day. The alert and budget-adjustment options exist precisely because pausing carries consequences that a recommendation does not.

For the root-cause side of reducing ACoS, performance rules catch the drift. The underlying issue still needs diagnosis when a rule surfaces it. See the full Off Hours performance rules feature page for configuration details and what each action looks like inside the dashboard. Performance rules are one of the four rule types in Off Hours, each covering a different dimension of account management. If you want to set one up without filling in every field manually, the AI rule builder can configure a performance rule from a plain-English description and shows you what it built before anything runs.

Frequently asked

What are performance rules in Amazon Ads?
Performance rules are automated conditions that monitor a campaign's prior-day metrics, such as ACoS or daily spend, and respond when those metrics cross a threshold. Unlike scheduling rules that operate on a calendar, performance rules react to how a campaign is actually performing. Off Hours performance rules evaluate once daily against settled data and can be configured to send alerts, adjust the budget, or pause a campaign.
Why does Off Hours use daily data instead of real-time?
Amazon attributes sales to the clicks that drove them, and those attributions can take hours or days to appear in reporting. Reading today's data in real time means reading incomplete data. A campaign that shows $40 in spend and no sales at 10am may show seven attributed sales by evening when attribution catches up. Off Hours evaluates at 6am against prior-day data, which has had 12 or more hours to settle, so the numbers you are acting on are complete and accurate.
What actions can a performance rule take?
Performance rules in Off Hours support three actions: alert only, which sends a recommendation to the dashboard and optionally to Slack without touching the campaign; adjust budget, which cuts the daily budget by a configured percentage and stores the original for restoration; and pause, which stops the campaign and logs the reason. Each rule is configured to one action at setup. You can start with alert only and promote to a more consequential action after you have validated the trigger logic over time.
What is a spend-spike rule?
A spend-spike rule is a performance rule that monitors daily spend against each campaign's own recent run rate rather than a fixed dollar ceiling. It fires when spend jumps significantly above the campaign's established normal, which catches acceleration driven by increased bid competition, unexpected traffic, or match-type drift, without generating false alarms during legitimate high-spend periods where performance also held strong. The campaign's own baseline is the reference point, not a static number.

Off Hours performance rules evaluate once daily against settled prior-day data, compare each campaign against its own baseline, and respond in graduated steps from alert to budget adjustment to pause. Start a free 14-day trial, no credit card required.