Merit AC™
Sample report · Meta Media Buyer agent · fictional data

Kill, scale and test calls for 2026-10-14

Fernhill Skin Co. (fictional) · data through 2026-10-14 · currency USD

Goals: Grow new customers into the holiday season while keeping 7-day ROAS at 2.0 or better.

Recommendations only. This tool reads exported reports and cannot change anything in your ad account. A person applies each step in Meta Ads Manager.

Judged on 2026-10-08 to 2026-10-14 (7 days), on ROAS: target ROAS 2.00x, target CPA $32.00 (from average_order_value / target_roas), break-even ROAS 1.47x. Rules are in sample-input/media-buyer.ini; each call names the one it used. Budgets live on the ad set (business.meta_budget_level).

2 kill, 1 scale, 2 test; 7 held by the learning guard. The kill calls cover $487.42 a week of spend above what your target allows.

Ranked by weekly impact

# Action Where Key metric Impact / week
R1 TEST PROS | Broad | Purchases > Broad 25-54 US · Audience Network · Native, banner and interstitial + Facebook · Right column + Messenger · Inbox ROAS 0.71x on $1,774.50 $456.74
R2 SCALE PROS | Broad | Purchases > Broad 25-54 US ROAS 3.00x on $4,423.68 $442.37
R3 KILL PROS | Broad | Purchases > Interest - Clean beauty ROAS 1.12x on $744.65 $326.07
R4 KILL PROS | Broad | Purchases > Broad 25-54 US > Static - 20% off first order ROAS 0.35x on $195.72 $161.35
R5 TEST PROS | Broad | Purchases > Broad 25-54 US > Video - Texture close-up 15s CTR 1.04%, freq 1.86, hook 25.77% $116.19

R1 · TEST · ad set: PROS | Broad | Purchases > Broad 25-54 US · Audience Network · Native, banner and interstitial + Facebook · Right column + Messenger · Inbox

Do this: In Meta Ads Manager, duplicate ad set “Broad 25-54 US” (campaign “PROS | Broad | Purchases”). In the duplicate only, open Placements, switch to Manual placements and untick Audience Network · Native, banner and interstitial and Facebook · Right column and Messenger · Inbox. Keep the original running unchanged so its learning is not reset. Give the duplicate a budget of about $126.39 a day and compare the two once the duplicate has spent $50.00; keep the one with the better ROAS.

Why: placements Audience Network · Native, banner and interstitial (P1 in work/breakdowns.json: $1,252.59 at ROAS 0.62x, $722.73 below break-even); Facebook · Right column (P3 in work/breakdowns.json: $313.15 at ROAS 0.99x, $102.41 below break-even); Messenger · Inbox (P4 in work/breakdowns.json: $208.76 at ROAS 0.85x, $88.34 below break-even), 2026-10-01 to 2026-10-14. Rule placement_below_break_even.

Numbers, 2026-10-01 to 2026-10-14: spend $1,774.50, conversions 20.0, ROAS 0.71x, CPA $88.72, CTR 1.51%, CPM $6.89.

Impact: $456.74 a week (spend below break-even in those placements, per 7 days), an estimate.

  • Placement data is campaign-wide in this export; the duplicate goes on the biggest ad set that is out of learning.

  • The duplicate starts in learning. About $126.39 a day is 20% (rules.scale_step_pct) of the original's daily spend, so the test stays small.

Source: work/recommendations.json R1; rows S73, S77, S81; export meta-placement-2026-10-01_to_2026-10-14.csv lines 7, 9, 10.

R2 · SCALE · ad set: PROS | Broad | Purchases > Broad 25-54 US

Do this: In Meta Ads Manager, open ad set “Broad 25-54 US” (campaign “PROS | Broad | Purchases”) and edit its daily budget. Average daily spend was $631.95. If the daily budget sits near that, raise it by up to 20% to about $758.34, in one edit. Then leave the budget alone for 3 days (rules.scale_wait_days). The next step, only if ROAS is still at or better than 2.00x by then, is up to another 20% to about $910.01. If the budget is already well above what it spends, delivery is not budget-limited and a raise will not change much; leave it.

Why: ROAS 3.00x clears the scale line 2.40x (target 2.00x plus 20%) on 211 conversions. Rule scale_roas_above_target_pct = 20.

Numbers, 2026-10-08 to 2026-10-14: spend $4,423.68, conversions 211.0, ROAS 3.00x, CPA $20.97, CTR 1.27%, CPM $13.25, frequency 1.17, hook rate 26.52%, hold rate 13.60%.

Impact: $442.37 a week (extra weekly spend x (ROAS / target ROAS - 1), per 7 days), an estimate.

  • One step of at most 20% (rules.scale_step_pct). Larger jumps tend to push Meta back into learning; efficiency usually drops as spend rises.

  • “Video - Texture close-up 15s” inside it shows creative fatigue (F1). More budget pushes its frequency up faster; start the refresh test first.

Source: work/recommendations.json R2; rows N652-N656, N667-N671, N682-N686, N697-N701, N712-N716, N727-N731, N743-N747; export meta-ads-2026-09-15_to_2026-10-14.csv lines 313, 314, 315, 316, 317, 328, 329, 330, 331, 332 and 25 more.

R3 · KILL · ad set: PROS | Broad | Purchases > Interest - Clean beauty

Do this: In Meta Ads Manager, open the Ad sets tab, find ad set “Interest - Clean beauty” (campaign “PROS | Broad | Purchases”) and switch it off.

Why: ROAS 1.12x is at or under the kill line 1.30x (target 2.00x minus 35%). Rule kill_roas_below_target_pct = 35.

Numbers, 2026-10-08 to 2026-10-14: spend $744.65, conversions 13.0, ROAS 1.12x, CPA $57.28, CTR 1.01%, CPM $15.54, frequency 1.19, hook rate 25.88%, hold rate 11.12%.

Impact: $326.07 a week (spend - purchase value / target ROAS, per 7 days), an estimate.

  • This ad set is in learning (13 conversions in 2026-10-08 to 2026-10-14, under rules.learning_min_conversions = 50). Switching it off ends it; it does not edit anything still learning.

  • Covers 2 ads inside it; they get no separate call.

Source: work/recommendations.json R3; rows N657-N658, N672-N673, N687-N688, N702-N703, N717-N718, N732-N733, N748-N749; export meta-ads-2026-09-15_to_2026-10-14.csv lines 318, 319, 333, 334, 348, 349, 363, 364, 378, 379 and 4 more.

R4 · KILL · ad: PROS | Broad | Purchases > Broad 25-54 US > Static - 20% off first order

Do this: In Meta Ads Manager, open the Ads tab, find ad “Static - 20% off first order” (campaign “PROS | Broad | Purchases”, ad set “Broad 25-54 US”) and switch it off.

Why: ROAS 0.35x is at or under the kill line 1.30x (target 2.00x minus 35%). Rule kill_roas_below_target_pct = 35.

Numbers, 2026-10-08 to 2026-10-14: spend $195.72, conversions 1.0, ROAS 0.35x, CPA $195.72, CTR 0.80%, CPM $12.06, frequency 1.07.

Impact: $161.35 a week (spend - purchase value / target ROAS, per 7 days), an estimate.

Source: work/recommendations.json R4; rows N653, N668, N683, N698, N713, N728, N744; export meta-ads-2026-09-15_to_2026-10-14.csv lines 317, 332, 347, 362, 377, 392, 408.

R5 · TEST · ad: PROS | Broad | Purchases > Broad 25-54 US > Video - Texture close-up 15s

Do this: In Meta Ads Manager, duplicate ad “Video - Texture close-up 15s” in ad set “Broad 25-54 US” (campaign “PROS | Broad | Purchases”) and change one thing: the first three seconds (hook), the main visual or the headline. Keep the original running until the new ad has spent $50.00, then keep the one with the better ROAS.

Why: creative fatigue (F1 in work/fatigue.json): frequency rising, CTR falling, hook rate falling. Frequency 1.38 to 1.86 (+34.8%), CTR 1.43% to 1.04% (-27.3%), hook rate 33.20% to 25.77% (-22.4%), 2026-10-01 to 2026-10-07 against 2026-10-08 to 2026-10-14. Rule fatigue_ctr_drop_pct = 20.

Numbers, 2026-10-08 to 2026-10-14: spend $425.59, conversions 13.0, ROAS 1.81x, CPA $32.74, CTR 1.04%, CPM $14.35, frequency 1.86, hook rate 25.77%, hold rate 16.00%.

Impact: $116.19 a week (weekly spend x CTR drop), an estimate.

Source: work/recommendations.json R5; rows N551, N566, N581, N596, N611, N626, N641, N656 and 6 more ranges; export meta-ads-2026-09-15_to_2026-10-14.csv lines 316, 331, 346, 361, 376, 391, 407.

Held by the learning guard

An ad set with fewer than 50 conversions in the last 7 days (rules.learning_min_conversions) is treated as in learning. These calls would otherwise have been made; nothing here needs doing today.

# Would be Where Key metric Impact / week Why held
H1 KILL TEST | Creative sandbox | Purchases > Broad - creative tests > Static - Dermatologist quote 0.00x on $157.30 $157.30 the ad set is in learning (14 conversions in 2026-10-08 to 2026-10-14, under rules.learning_min_conversions = 50); pausing an ad inside it is a significant edit that restarts learning. Re-check once the ad set has 50 conversions in 7 days, or if the ad set itself is switched off.
H2 KILL PROS | LAL 2% purchasers | Purchases > LAL 2% purchasers 180d > Video - Unboxing 20s 0.00x on $142.54 $142.54 the ad set is in learning (38 conversions in 2026-10-08 to 2026-10-14, under rules.learning_min_conversions = 50); pausing an ad inside it is a significant edit that restarts learning. Re-check once the ad set has 50 conversions in 7 days, or if the ad set itself is switched off.
H3 TEST RT | Visitors 30d | Purchases > Site visitors + ATC 30d > Carousel - Reviews 1.69x on $374.44 $83.87 the ad set is in learning (29 conversions in 2026-10-08 to 2026-10-14, under rules.learning_min_conversions = 50); adding or swapping an ad is a significant edit. Brief the replacement now (/briefs) and launch it when the ad set exits learning, or in a new ad set.
H4 TEST PROS | LAL 2% purchasers | Purchases · Audience Network · Native, banner and interstitial + Facebook · Right column 0.66x on $284.14 $78.41 every delivering ad set in campaign “PROS | LAL 2% purchasers | Purchases” is in learning, so its placement mix has not settled. Re-check when one of them exits learning.
H5 SCALE PROS | LAL 2% purchasers | Purchases > LAL 2% purchasers 180d 2.66x on $891.58 $58.84 the ad set is in learning (38 conversions in 2026-10-08 to 2026-10-14, under rules.learning_min_conversions = 50); a budget edit restarts learning and the ROAS is not settled yet. Re-check once it has 50 conversions in 7 days.
H6 TEST RT | Visitors 30d | Purchases · Audience Network · Native, banner and interstitial 0.68x on $160.75 $43.19 every delivering ad set in campaign “RT | Visitors 30d | Purchases” is in learning, so its placement mix has not settled. Re-check when one of them exits learning.
H7 TEST TEST | Creative sandbox | Purchases · Audience Network · Native, banner and interstitial 0.60x on $97.17 $28.91 every delivering ad set in campaign “TEST | Creative sandbox | Purchases” is in learning, so its placement mix has not settled. Re-check when one of them exits learning.

Ad sets and learning

Ad set Conversions Spend Status
PROS | Broad | Purchases > Broad 25-54 US 211 $4,423.68 out of learning
PROS | Broad | Purchases > Interest - Clean beauty 13 $744.65 in learning
PROS | LAL 2% purchasers | Purchases > LAL 2% purchasers 180d 38 $891.58 in learning
PROS | LAL 2% purchasers | Purchases > LAL 5% engagers 3 $81.68 in learning
RT | Visitors 30d | Purchases > Site visitors + ATC 30d 29 $653.01 in learning
TEST | Creative sandbox | Purchases > Broad - creative tests 14 $409.49 in learning

Held: judged, no change

Where Spend ROAS CPA Reason
PROS | Broad | Purchases > Broad 25-54 US > UGC - Morning routine 30s $2,666.22 3.63x $17.09 ROAS 3.63x clears the scale line 2.40x (target 2.00x plus 20%) on 156 conversions; budgets are set per ad set, so any scale call is made there
RT | Visitors 30d | Purchases > Site visitors + ATC 30d $653.01 2.83x $22.52 ROAS 2.83x clears the scale line 2.40x (target 2.00x plus 20%) on 29 conversions; not scaled because the campaign name matches never_scale_name_contains (brand, RT |)
PROS | Broad | Purchases > Broad 25-54 US > Founder story 45s $649.75 2.22x $30.94 ROAS 2.22x is between the kill line 1.30x and the scale line 2.40x
PROS | Broad | Purchases > Broad 25-54 US > Static - Before and after $486.40 2.73x $24.32 ROAS 2.73x clears the scale line 2.40x (target 2.00x plus 20%) on 20 conversions; budgets are set per ad set, so any scale call is made there
RT | Visitors 30d | Purchases > Site visitors + ATC 30d > Carousel - Reviews $374.44 1.69x $37.44 ROAS 1.69x is between the kill line 1.30x and the scale line 2.40x
PROS | LAL 2% purchasers | Purchases > LAL 2% purchasers 180d > UGC - Morning routine 30s $336.03 3.42x $17.69 ROAS 3.42x clears the scale line 2.40x (target 2.00x plus 20%) on 19 conversions; budgets are set per ad set, so any scale call is made there
RT | Visitors 30d | Purchases > Site visitors + ATC 30d > Static - Free shipping $278.57 4.38x $14.66 ROAS 4.38x clears the scale line 2.40x (target 2.00x plus 20%) on 19 conversions; budgets are set per ad set, so any scale call is made there
TEST | Creative sandbox | Purchases > Broad - creative tests > UGC - Skincare myths 25s $252.19 3.41x $18.01 ROAS 3.41x clears the scale line 2.40x (target 2.00x plus 20%) on 14 conversions; budgets are set per ad set, so any scale call is made there
PROS | LAL 2% purchasers | Purchases > LAL 2% purchasers 180d > Carousel - Bestsellers $240.42 2.83x $21.86 ROAS 2.83x clears the scale line 2.40x (target 2.00x plus 20%) on 11 conversions; budgets are set per ad set, so any scale call is made there
PROS | LAL 2% purchasers | Purchases > LAL 2% purchasers 180d > Static - Ingredient list $172.59 3.16x $21.57 ROAS 3.16x clears the scale line 2.40x (target 2.00x plus 20%) on 8 conversions; budgets are set per ad set, so any scale call is made there

Not judged yet

Where Spend Days live Reason
PROS | LAL 2% purchasers | Purchases > LAL 5% engagers > Static - Gift set $81.68 2 delivered on 2 day(s); needs 3

Mark each call done in the CSV next to this file (done_by, done_on) so the next run can be read against what changed.

← Back to the Meta Media Buyer agent