Lifecycle · Draft
Plan Update, Revise & Replanning
Objective
Keep approved media plans aligned with reality — per plan track (always-on, branding, special day, engagement) and at master level when the budget envelope changes. Tactical changes happen via optimization (within guardrails); when drift or strategy shifts accumulate on a track, that track gets a new plan version (vN+1) — not ad-hoc platform edits without documentation.
Three modes:
| Mode | What changes | New plan version? | Approval |
|---|---|---|---|
| Optimization | Bids, budgets, audiences, creative rotation within guardrails | No — updates execution_manifest + change_set |
Auto or human if over threshold |
| Plan revise | Reflects accumulated optimizations into plan text (budget flight, channel mix, KPI targets) | Yes — vN+1 revise |
Planner (+ client if budget up) |
| Full replan | New channel, objective, geo, or structural campaign model | Yes — vN+1 replan |
Planner + client |
When to optimize vs revise vs replan
| Situation | Path |
|---|---|
| ±10% budget shift within same structure | Optimization only |
| Cumulative channel budget drift >15% vs approved plan (rolling 30d) | Plan revise (recommended by Reporting / Optimization Agent) |
| KPI target adjustment (same objective, new CPA/ROAS target) | Plan revise |
| Seasonal budget flight update (same channels) | Plan revise (per track) |
| Special-day date or budget shift | Plan revise on event track (or new plan.event.draft) |
| New branding flight alongside always-on | New track + plan.track.draft |
| Engagement burst (organic + engagement ad) | Engagement track revise or event draft |
| New channel added (e.g. add TikTok) | Full replan |
| KPI change (leads → purchases) | Full replan |
| New geo or market entry | Full replan |
| Pause all spend | Optimization hold or plan revise with zero flight |
Inputs
track_id(always_on, branding, engagement, event_{slug}, …)- Current approved plan version
vNfor that track - Master plan caps (if revise affects envelope)
execution_manifestslice for the trackoptimization_logfor the track sincevNapproval- Trigger: client request, reporting recommendation, optimization drift threshold, seasonality calendar
- Performance summary from Reporting Agent (GA4 primary)
Outputs
- New
MediaPlanversionvN+1indraft(type:reviseorreplan) - Structured diff vs
vN+ diff vs live manifest (what optimizations already applied) plan_revise_summaryfor client dashboard and weekly report- Approval workflow identical to initial planning (lighter SLA for revise)
- On approval: Execution aligns any remaining delta; supersede
vN; reports anchor tovN+1
End-to-end flow (optimization → revise → report)
Workflow (plan version creation)
Version history
All versions retained indefinitely:
approved_at,approved_by- Full payload snapshot
- Link to
execution_manifestentries
Client communication
- Summary of changes in client-facing language
- Before/after budget table
- Expected KPI impact (qualitative in Phase 0; predictive in later phases)
Human touchpoints
- All replans require planner approval
- Client sign-off for budget increases > threshold
- Compliance review if messaging/objective changes
Optimization → plan revise triggers (automated)
| Signal | Threshold (default) | Action |
|---|---|---|
| Cumulative budget drift by channel | >15% vs vN flight (30d rolling) |
Create plan.revise.recommended ticket |
| Guardrail approvals count | >5 human spend approvals in 14d | Suggest plan revise to codify new caps |
| KPI miss duration | Primary KPI below target 21d | Reporting proposes revise or replan |
| Structural optimization blocked | Agent blocked 2× on "structural" change | Auto-escalate to replan draft |
| Seasonality calendar | 14d before configured flight change | Pre-draft revise for planner review |
Recommendations do not auto-approve — they create HITL tickets and optional draft vN+1 in draft.
SLA
- Plan revise draft: 1 business day
- Full replan draft: 2 business days
- Approval: 1–3 business days (client dependent)