Recent runs: All runs →
Ladies Dry Fit V Neck
Loading...
Avg Daily Sales (L7)
TACoS TargetSource: RE Campaigns TACoS Targets Google Sheet
Daily Budget Available
TACoS at Full Utilization
Total Sales
Ad Sales
Ad Spend
TACoS
Budget Util.
-
Pending
-
Critical (L1)
-
Growth (L2)
-
Bid changes
-
Budget changes
Loading suggestions...

Suggestions — Table

Showing 0 of 0 suggestions

Suggestions — Table Compact

Showing 0 of 0 suggestions

Suggestions — Table Buckets

Showing 0 of 0 suggestions

Campaign Decisions

No run selected

Suggestions — Table Campaign

Showing 0 of 0

Suggestions — Spreadsheet

Showing 0 of 0
j/k move · a accept · c accept custom · r reject · x select · / search · Esc close drawer
No run selected
Click a run in the Runs tab to load its validation data here.

Agent Questions

Questions the agents wrote during their daily run. Answer one to teach the agent — your answer is saved AND added to the knowledge base automatically.

Today's advertising events

Loading...
Add knowledge entry
📖 Category guide — what goes where?
Strategy
High-level direction and priorities
  • Q2 is our strongest season for dry fit — be more aggressive with bids May through June
  • We prioritize margin protection over volume growth
  • We're testing video ads on workout tops — don't touch those campaign budgets
Guardrail
Hard rules the agent must NEVER violate
  • Never increase bids on competitor brand terms
  • No single campaign should exceed $200/day budget without explicit approval
  • Never decrease bids on keywords that are in our top 5 organic ranking positions
Parameter
Specific numbers and thresholds
  • Target portfolio TACoS is 12%
  • ACOS ceiling for EXACT match keywords: 35%
  • Maximum bid change per suggestion: 20%
Playbook
How to think about situations — daily operational approaches
  • When a keyword has high ACOS but strong sales volume, check the search term report for irrelevant traffic before cutting the bid
  • Before increasing a campaign budget, check if there are low-performing keywords eating spend that should be paused instead
  • Always check if a keyword is a ranking keyword before suggesting a bid decrease — we sometimes pay a premium for organic rank
Keyword insight
Specific knowledge about individual keywords or themes
  • workout tops for women converts much better on mobile than desktop
  • The keyword 'shirts for women' is too generic — broad match picks up irrelevant traffic
  • v neck terms have higher CVR than crew neck terms in this portfolio
Market context
External factors the agent can't see in the data
  • Prime Day is July 15–16 — expect higher CPCs and budget accordingly
  • Competitor XYZ is running heavy promotions this week
  • New listing launched April 1 — data before that date is for the old listing
Lesson learned
Things discovered from past experience
  • We tried aggressive bidding on broad match generic shirt terms in Q1 — it bled $5K with no incremental sales
  • Lowering bids on auto campaigns below $0.30 kills discovery traffic
  • Budget increases over 25% at once trigger Amazon's learning period and waste spend for 2–3 days
Override the TACoS target per portfolio. When an override is active (no expiration OR expires_at ≥ today PT), the agents (Strategist / Optimizer / Reviewer / Custom / Quick Analyst) use the override in place of the sheet value when deriving target ACOS. Leave the Override column blank to use the system value. Leave expiration blank for an indefinite override. To drop an override, clear the value and save.
Bulk assign: 0 selected
Portfolio Inventory Rank SKU Projection (yest) Stance System target Override % Expires (PT) Effective Note
Loading…
Override the per-portfolio ETA multiplier. The engine computes an Initial ETA from TACoS target ÷ Ad-sales % L14, then multiplies by this knob before applying match-type tolerance and the campaign-level orders/day bonus. Set 1.00 for no change, 1.10 for +10% (more aggressive), 0.90 for −10% (more conservative). Leave blank to clear the override.
Portfolio Inventory Rank SKU Projection (yest) Stance TACoS Target L14 Total Revenue L14 Ad Sales Ad Sales % (L14) Initial ETA Multiplier Expires (PT) Note Effective ETA
Loading…
Read-only view: per-portfolio Effective ETA (after multiplier) broken out by match type. Each cell = Effective ETA × match-type tolerance. The orders/day bonus is applied per-campaign at run time on top of these values, so cells here represent the starting ETA the engine uses for any keyword/target of that match type before the orders bonus. Edit multipliers on the ETA Targets tab.
Portfolio Effective ETA(initial × multiplier) Autoeta × Broadeta × Phraseeta × Exacteta ×
Loading…
How the run modes differ. Each mode reads different signals and makes different kinds of moves. Pick the one that matches the question you're trying to answer: "Are my campaigns running efficiently as a whole?" (Campaign Legacy) · "Are individual keywords priced right?" (Bids) · "Bids, but with an extra check?" (Bids + Review).

Quick Run – Campaign (Legacy)

quick_rules_campaign Default

Looks at each campaign as a whole. Decides ONE bid direction and ONE budget direction per campaign, then applies the bid decision to every keyword in the campaign with per-keyword safety guardrails. Best for coordinated moves where bid and budget should respond together.

Best for: daily decisioning across portfolios. You want fast, coordinated moves on each campaign and you're OK with the bid being applied uniformly across all keywords (with guardrails).
How a decision flows
1. Read campaign roll-upACOS L7/L14/L30, spend, sales, orders, OOB hours, utilization, last budget change.
2. Compute target ACOSTACoS goal ÷ L14 ad-sales share × your ETA multiplier × match-type tolerance + per-campaign orders bonus.
3. Decide bid + budgetTwo coordinated decisions. Bid follows ACOS-vs-target trend; budget follows OOB + utilization + perf.
4. Run guardrailsHOLD-band, OOB gate, budget cooldown, stance override, per-kw cooldowns.
5. Apply per-kwSame bid % to each child kw, with IKWE −5% cap, $0.02–$3.00 clamp, same-day floor, same-direction cooldown.
Signals

Uses these signals

  • Campaign-level ACOS L7 / L14 / L30 vs target ACOS (ETA)
  • TACoS target (with active overrides)
  • Your ETA multiplier (ETA Targets tab)
  • Match type — sets the tolerance multiplier (auto 0.80 ··· exact 1.20)
  • Campaign orders/day (high-volume campaigns earn extra ACOS room)
  • Out-of-budget hours yesterday + first-OOB time
  • Yesterday's budget utilization
  • Last budget change date (cooldown gate)
  • Portfolio stance — derived from inventory + pace projection
  • Per-keyword last bid change date (cooldown gate)
  • IKWE / sacred-campaign protection

Does NOT use directly

  • Per-keyword ACOS (decisions are at campaign grain — kw ACOS is rolled up but not read individually)
  • Inventory levels directly (only via stance)
  • Pace projections directly (only via stance)
  • Rank-SKU status
  • Per-keyword sweet-spot detection
  • Drift detection
  • Trend classifier sub-scenarios at the kw level
Guardrails
  • Anti-overcut guard — bid AND budget DECREASES are suppressed whenever ACOS L30 is at or below target ACOS × 1.10. The threshold is multiplicative, not additive — for a target of 28.8%, the cut-threshold is 28.8% × 1.10 = 31.68% (NOT 28.8% + 10pp = 38.8%). So a campaign with ACOS L30 anywhere up to 31.68% won't get cut, no matter what the trend looks like. Only campaigns running materially over target are eligible for cuts. Cutting at-or-below target risks starving a winner.
  • OOB gate (bid) — if the campaign capped out yesterday, bid increases get held regardless of whether the budget is also being raised. The reasoning: pushing bids and budgets up at the same moment puts too much pressure on a freshly-raised cap. Let the budget expansion play out first, then revisit bids next run.
  • Budget cooldown — universal 24h floor on any budget change. Same-direction cooldowns: 5/7/10 days for increases (light/moderate/strong), 3/5/7 days for decreases. Reversals (different direction) are allowed past the 24h floor.
  • DEFENSIVE caps — DEFENSIVE / CONSERVATIVE stance does NOT force any change. If the scenario is already deciding to move, the magnitude gets capped: max 5% bid increase, max 2.5% bid decrease, max 5% budget change (in either direction). Conservative means restrained, not aggressive backpedal — DEFENSIVE often just means inventory is uneven across variants, not that the portfolio is unsellable.
  • SCALE upgrade — SCALE stance promotes the bid step on sustained-good campaigns: instead of the default +5% bump, sustained-good in SCALE goes +10%.
  • Per-keyword same-day floor — never two bid changes on the same keyword in the same calendar day.
  • Per-keyword same-direction cooldown — if we cut a kw's bid 4 days ago and the campaign decision says cut again today, the cut is skipped on that kw. Reversals (different direction) are allowed.
  • IKWE protection — sacred Individual KW Exact campaigns get a max −5% bid decrease cap.
  • Bid clamps — every kw bid stays inside $0.02 – $3.00. Changes smaller than $0.02 are skipped.
  • Hold-band override transparency — when the trend classifier wanted to cut but the hold band blocked it, the suppressed scenario is recorded so you can see what would have happened.

Quick Run – Bids

quick_rules Start Rules

Looks at each KEYWORD individually. Decides bid up / down / hold per kw based on its own ACOS history and trend. No budget changes — that side is untouched. Best when you want fine-grained per-keyword tuning.

Best for: targeted bid optimization where each keyword's history matters more than the campaign average. Especially useful for portfolios with a mix of high- and low-performing keywords inside the same campaign.
How a decision flows
1. Read each keywordPer-kw ACOS L7/L14/L30, current bid, orders, clicks, days with data, last bid change.
2. Compute kw targetTarget ACOS × match-type tolerance + per-keyword orders bonus.
3. Classify trendEight scenarios: sustained_good/bad, emerging good/bad, deteriorating, recovering, lucky, mixed.
4. Run guardrailsHOLD band, zero-sales check, drift, sweet-spot, same-day floor, same-direction cooldown, IKWE cap.
5. Emit suggestionPer-kw bid change with urgency level (L1–L4) and reasoning. Budget side is untouched.
Signals

Uses these signals

  • Per-keyword ACOS L7 / L14 / L30
  • Per-keyword bid history (last change date, from/to, dominant bid by period)
  • Per-keyword orders/day, clicks, days with data
  • Match type tolerance (per kw)
  • TACoS target + your ETA multiplier
  • Sweet-spot detection (revert to a known-good prior bid)
  • Drift detection (cumulative L30 movement)
  • Same-day floor + same-direction cooldown bands
  • Campaign-level OOB / utilization (feeds urgency, not bid math directly)
  • Portfolio stance (feeds urgency / bucket assignment)
  • IKWE / sacred-campaign protection
  • Zero-sales-with-clicks (high-priority L1 cut)

Does NOT use

  • Budget changes — this mode never touches budgets
  • Inventory levels directly (only feeds urgency tier)
  • Pace projections directly (only feeds urgency tier)
  • Rank-SKU status
  • Coordinated bid+budget logic (each kw is decided in isolation)
Guardrails
  • HOLD band — when ACOS L30 sits between kw target × 0.90 and kw target × 1.10 (multiplicative, not additive — for a 28.8% kw target the band runs 25.92% – 31.68%), decreases are suppressed. Cutting near target risks starving a winner.
  • Zero-sales-with-clicks — keywords with clicks but zero sales over L30 trigger an L1-urgent cut, bypassing the HOLD band (active money-loss).
  • Same-day floor — never two bid changes on the same kw in the same day.
  • Same-direction cooldown — light bands run ~3 days, moderate ~5, aggressive ~7. Lets the prior change settle before stacking.
  • Reversal allowed — different-direction prior change isn't blocked by cooldown (only by the 24h floor).
  • Sweet-spot revert — when a kw is being cut, the engine looks for a historically-profitable bid level and may revert toward the midpoint instead of cutting fresh.
  • Drift detection — kw drifted ≥ N% cumulative in either direction triggers special handling: pause-candidate for chronic decreases, pull-back for over-increased.
  • IKWE protection — IKWE keywords get max −5% bid decrease cap, and pause is forbidden.
  • OOB-yesterday gate (bid increases) — same logic as Campaign mode: bid+ blocked if budget isn't being raised, softened to +5% if it is.
  • Bid clamps — every bid stays inside $0.02 – $3.00. Changes smaller than $0.02 are skipped.

Quick Run – Bids + Review

quick_rules_reviewed Start Rules + Review

Same as Quick Run – Bids, but adds a Reviewer agent at the end. The Reviewer reads each suggestion, validates the math, flags contradictions, and assigns final urgency / bucket / confidence before the dashboard sees it. Quality gate, not a redecide.

Best for: when you want every per-keyword suggestion second-checked for math errors, contradictions ("we're cutting and increasing the same kw on different days"), or stale signals before you start clicking Accept.
How it differs from Quick Run – Bids
1. Same as Bids modeAll five steps from the Bids mode run identically.
2. Reviewer agent reads each suggestionClaude managed agent loads the suggestion + its reasoning + the kw's recent history.
3. Math + contradiction checksVerifies the % change and direction match the cited ACOS. Spots contradictions with recent history.
4. Final urgency + confidenceL1–L4 urgency, bucket, confidence score. May downgrade urgency or flag for manual review.
5. Write to dashboardSuggestion lands with reviewer metadata attached.
What the Reviewer does

Reviewer can

  • Validate the proposed bid math (does the % match the ACOS-vs-ETA delta?)
  • Flag contradictions ("we cut this kw 2 days ago and now we want to cut again — is that right?")
  • Downgrade urgency (L1 → L3 if the signal is weak)
  • Assign a final bucket (urgent_critical, urgent_growth, optimization, monitor)
  • Attach a confidence score (high / medium / low)
  • Add notes that show on the suggestion card

Reviewer cannot

  • Change the proposed bid value (math comes from the rules engine)
  • Add new suggestions (only reviews ones the rules engine emitted)
  • Override engine guardrails (HOLD band, IKWE cap, cooldowns are final)
  • Reach the Amazon Ads API (read-only — Eddie still clicks Accept to push)
Trade-offs
  • Slower — adds the Reviewer pass on top of the rules pass. Expect roughly 2× the wall-clock time of plain Quick Run – Bids.
  • More expensive — Claude managed-agent calls cost real money per run.
  • Better quality — math errors and contradictions get caught before you act on them. Confidence scores let you triage which suggestions to read carefully vs which to bulk-approve.
  • Same guardrails — every safety net listed under Quick Run – Bids still applies. The Reviewer is additive, not replacing.
Loading…
Portfolios
⏳ Loading portfolios…
Three engines operate at the keyword/target level across each selected portfolio (no Strategist, no per-campaign Optimizer). Emits bid changes only (no budget changes). Singleton: only one Complete or Quick* run can be in progress at a time.
Rules engine
Deterministic Python — no LLM. Fast iteration / testing / baseline.
~30–60 sec per portfolio.
Rules + Reviewer
Rules engine then Reviewer agent QA. Safety net for daily routine.
~3–8 min per portfolio.
Agent (Keyword/Target Analyst)
Full LLM pass + Reviewer. Deepest analysis with narrative reasoning.
~15–25 min per portfolio.
Recent Runs
⌛ Loading recent runs…
0 selected
Bulk select by vote: