✕ Today: stale custom range silently hijacks named periods and poisons the 15-min cache — "timeline selector doesn't always work" (audit Bug #1, InternationalMarketsSection.tsx:137).
✓ New: period switch always clears the custom range; MTD is the default and each switch refetches clean data.
Verdicts · rolling 14–28d blended ROAS vs 1.76× breakeven
✕ Today: two contradictory signal systems (Scale = ROAS ≥3 in the table vs ≥1.5 in the detail page) and thresholds hidden as magic numbers (audit §5).
✓ New: one verdict engine, anchored to the 1.76× breakeven, with the suggested budget step printed on the card. Read-only — never writes to Meta.
Funded markets — evidence
MTD · revenue net of tax · budgets live from Meta · blended ROAS = market revenue ÷ Meta spend
✕ Today: revenue includes tax (~8–12% inflated, audit Bug #2) and daily budgets are hardcoded at $250 — the page can't see real Meta spend.
✓ New: revenue = total − tax per house rule; budgets pulled from the Meta API (CBO + ABO aware). 30d sparklines show revenue and ROAS shape at a glance.
Market
Revenue
Spend
Budget/day
Blended ROAS
Rev 30d
ROAS 30d
Discovery — unfunded markets
Organic performance vs site average · candidate = beats a funded market's organics
✕ Today: no discovery view exists — organic markets that already out-convert a funded market are invisible.
✓ New: DE and FR flagged as candidates: their organic CVR and $/session beat AU's organics. That's the "budget would likely work here" signal.
Market
Organic revenue
Sessions
CVR
$/session
vs site avg
Mockup only — all numbers are realistic fakes. Breakeven 1.76× marginal gross ROAS @ 56.9% GM. Click any verdict card or row for the market detail.