Skip to content

How it works

Budget Opportunities is an advisory engine: it looks at every campaign over the date range you have selected and recommends moving daily budget from under-performers toward high-ROAS campaigns that are being held back by their budget — across every connected Source (Google Ads and Meta Ads).

Each recommendation comes with a Why — a short, fixed reason explaining exactly which rule fired. There is a closed set of these messages, one per rule.

For every campaign that has a defined budget, over the selected date range, the engine computes three things:

  1. ROAS — conversion value ÷ spend.
  2. The blended median ROAS across all campaigns. This is the benchmark shown in the page header; every campaign is judged against it.
  3. Whether the campaign is budget-constrained (its budget is capping delivery):
    • Google → it is losing impression share to budget (search_budget_lost_impression_share ≥ 5%).
    • Meta → its daily spend is near the cap (≥ 85% of the daily budget).

It then classifies each campaign:

Action Condition Suggestion Suggested daily budget
▲ Scale up ROAS ≥ median and budget-constrained Raise the budget current × 1.25
▼ Pull back ROAS < 70% of the median Lower the budget current × 0.70
(no action) ROAS in between, or strong but not budget-constrained not shown

In short: a proven performer that is hitting its budget ceiling is a candidate to scale up; a campaign clearly under the pack on ROAS is a candidate to pull back. Everything else is left alone.

There are exactly three reasons you will see:

  1. Scale up · Google“ROAS X.XX (≥ median) and losing YY% impression share to budget” — profitable, but the budget is throttling it.
  2. Scale up · Meta“ROAS X.XX (≥ median) and spending near its daily cap” — profitable and bumping against its spend limit.
  3. Pull back“ROAS X.XX is well below the median Y.YY” — clearly under-performing versus the rest.

Each row also shows an estimated daily impact:

  • Scale up → estimated extra daily revenue ≈ (suggested − current budget) × ROAS.
  • Pull back → daily budget freed = current − suggested.

The header totals roll these up: daily budget to reallocate (sum of pull-backs) and estimated extra daily revenue (from funding the scale-ups).

  • It is ROAS-only: it does not yet account for target CPA, margins, seasonality, or saturation curves.
  • The thresholds (5% lost impression share, 85% of cap, median × 0.7, ×1.25 / ×0.70) are currently fixed.
  • Results follow the global date filter in the header — change the range to evaluate a different period.