Section 05 of 09
Budget pacing and KPI governance
05Budget pacing and KPI governance
A fixed monthly budget covers days 1–20; whatever remains keeps running until spent. The engine applies the same rules every morning, writes the decision to the ad account, and emails a plain-language log. The manager approved autonomous writes after a dry-run period.
Decision rules
- Daily cap = net budget ÷ flight days, so the whole flight is covered; 5% headroom for platform overspend.
- Pace to the remaining budget over the remaining days; step up at most 15% a day, step down at most 20%.
- Bad performance (3-day spend ≥ 3× target with zero leads or CPL > 1.5× target) cuts the budget; mediocre holds; good paces up.
- Guardrails: any change clamped to ±20% a day; kill-switch pauses a campaign when CPL stays above 2× target for three days with real spend, never auto-restarted; no change while an ad set is younger than seven days (learning) or on the manual freeze list.
- Target CPL is set per project (lower for the lower-ticket tower). Changes under 5% are ignored. Floor and minimum daily budgets protect delivery.
- Compliance: every property ad carries its Ajman DLRER permit number (RERA/Trakheesi permits in the Dubai roles), tracked in the weekly permit tracker; lead forms carry UAE PDPL consent texts and the consent source is written to the CRM.
Diagram Every morning the same inputs go through the same rules. The output is a budget write, a pause or nothing, and always an email.
What counts as a result
Verified CPL
Spend ÷ new CRM contacts after removing duplicates, invalid data and rent-only enquiries. The raw platform CPL is shown next to it but never used for decisions.
Qualified rate (Q+)
Qualified or beyond (site visit, proposal, booking, closed) ÷ verified leads, read as a snapshot 14 days after the wave.
Speed to lead
First human touch within 15 minutes is the team rule; the console shows buckets and the live no-touch queue.
Guards
Invalid share, rent-only share, not-a-buyer share and the Meta↔CRM gap, so a cheap lead cannot hide a bad one.
Want this for your projects?
The whole stack, or one piece of it. WhatsApp is fastest.