| name | portfolio-pacing-rules |
| description | Portfolio-specific pacing thresholds, budget tolerances, and brand caps. Auto-invoke when analyzing pacing variance, checking if accounts are on pace, investigating underspending/overspending, or discussing portfolio-specific rules (Portfolio A ±5%, Portfolio B ±8%, Portfolio C). Also loads when user mentions specific portfolios by name. |
| allowed-tools | ["Read"] |
Portfolio Pacing Rules Skill
Purpose: Provides portfolio-specific pacing thresholds, budget tolerances, brand caps, and performance targets that auto-load when analyzing account performance.
Type: Domain knowledge skill (auto-invoked)
Quick Reference: Pacing Thresholds by Portfolio
Portfolio A
- Budget Pacing: ±5% monthly tolerance (95%-105%)
- Brand Campaign Cap: 15% maximum of total account spend
- Primary KPI: ROAS (Conversion Value / Cost)
- Warning Zone: >±5% (investigate)
- Critical Zone: >±10% (immediate action)
Portfolio B
- Budget Pacing: ±8% monthly tolerance (92%-108%)
- Brand Campaign Cap: None (no restriction)
- Primary KPI: Cost per Conversion (testing ROAS on some accounts)
- Warning Zone: >±8% (investigate)
- Critical Zone: >±10% (immediate action)
Portfolio C
- Budget Pacing: ±8% monthly tolerance (92%-108%)
- Brand Campaign Cap: None (no restriction)
- Primary KPI: Cost per Conversion
- Warning Zone: >±8% (investigate)
- Critical Zone: >±10% (immediate action)
Universal Pacing Rules (All Portfolios)
Critical Thresholds
- Critical: >±15% variance = Immediate investigation required (KPI miss, client escalation)
- High Priority: >±10% variance = Requires investigation
- Warning: >±8% variance = Monitor closely
- On Pace: Within portfolio tolerance = Acceptable
Month-Start Normalization (Days 1-5)
- Early-month variance is expected (budget ramp-up period)
- Reduce severity tier for pacing variance in first 5 days
- Full threshold rules apply after Day 5
- Note: "Early-month variance expected to normalize by Day 7"
Portfolio Constraints
Portfolio A Accounts
Strategic Context:
- Budget pacing is non-negotiable (strict client KPI)
- ROAS optimization happens WITHIN pacing constraint
- Brand campaigns capped at 15% despite high efficiency (30-40x ROAS)
- AI campaigns (Pmax/DGen) are workhorses (60-70% of spend)
- Budget reallocation > budget cuts (maintain spend, improve efficiency)
- No shared budgets (need granular control for tight pacing)
Account Examples:
- Acme Plumbing (CID: [CUSTOMER_ID])
- Best HVAC (CID: [CUSTOMER_ID])
- City Dental (CID: [CUSTOMER_ID])
- Account D (multiple accounts)
When to flag:
- Pacing variance >±5%
- Brand spend >15% of total
- Any variance >±10% with <1 week left in month
Portfolio B Accounts
Strategic Context:
- More relaxed pacing tolerance (±8% vs Portfolio A's ±5%)
- No brand campaign cap
- Primary metric: Cost per Conversion (some testing ROAS)
- Shared budgets common (GEO + Bedroom campaigns)
- Budget flexibility allows for performance optimization
Account Structure:
- Original "Core 4": Brand, GEO, Bedroom, GDN Remarketing
- Current: Added Pmax/Demand Gen, paused GDN Remarketing
- Shared budgets: GEO + Bedroom campaigns use shared budget
When to flag:
- Pacing variance >±8%
- Any variance >±10% with <1 week left in month
- Shared budget imbalance (one campaign taking >80%)
Portfolio C
Strategic Context:
- Mid-tier accounts (NYC metro area)
- Similar constraints to Portfolio B (±8% pacing tolerance)
- 3 accounts total
Accounts:
- Portfolio C - Multi-region (CID: [CUSTOMER_ID])
- ProClean (CID: [CUSTOMER_ID])
- Quick Fix (CID: [CUSTOMER_ID])
When to flag:
- Pacing variance >±8%
- Any variance >±10% with <1 week left in month
Performance Targets by Portfolio
Portfolio A (ROAS Focus)
Campaign ROAS Targets:
- Brand Campaigns: 25-40x ROAS (elite, but capped at 15% spend)
- Performance Max: 15-20x ROAS (workhorse, scalable)
- Demand Gen: 15-20x ROAS (efficient, visual/discovery)
- YouTube/Video: 10-15x ROAS (supporting role)
- GEO/Keyword Campaigns: 5-10x ROAS (acceptable minimum)
- Underperformers: <5x ROAS (candidates for cuts/optimization)
- Money Losers: <1x ROAS (immediate action required)
Format for Portfolio A reports:
- Show ROAS (not "conversion value per cost")
- Example: "16.9x ROAS" (not "$16.90 per $1 spent")
Portfolio B (CPA Focus)
Cost per Conversion Targets:
- Varies by property (based on lease value and market)
- Primary metric: Target CPA (not ROAS)
- Testing ROAS on select accounts as alternative metric
- Campaign hierarchy: Brand (lowest CPA) → Pmax → GEO/Bedroom → Demand Gen
Format for Portfolio B reports:
- Show Cost per Conversion (e.g., "$125 CPA")
- Only show ROAS if specifically testing that metric
When to Use This Skill
Auto-Invoked When:
- Checking if account is on pace
- Analyzing pacing variance
- Investigating underspending or overspending
- Evaluating campaign performance vs. targets
- User mentions "Portfolio A", "Portfolio B", or "Portfolio C"
- User asks "what's the pacing threshold for [portfolio]"
- Creating performance reports or summaries
Data Sources Referenced:
- Google Sheets: "Run Rate Issues Analysis"
- Dashboard (see config/sheet-ids.yaml) - Portfolio A + Portfolio C
- Dashboard (see config/sheet-ids.yaml) - Portfolio B portfolio
- Google Ads API: Campaign performance data
- portfolio context files: Strategic context and constraints
Integration with Agents
Agents/workflows that use this skill:
- Your portfolio settings audit agent/workflow — applies portfolio thresholds to pacing analysis
- Your underspending investigation workflow — uses pacing tolerances for diagnosis
- Your account-level error analysis — flags accounts outside portfolio-specific thresholds
All agent references above are internal — replace with your own equivalents. This skill is protocol-only and works with any agent setup.
How to reference:
Agents and skills can reference this skill's rules directly. Claude will auto-load this skill when portfolio-specific pacing rules are needed.
Budget Management Context (Smart Bidding)
Primary Control Lever: Monthly Budget
- YOU CANNOT MANUALLY ADJUST BIDS with smart bidding (Max Conversions, Max Conversion Value)
- Monthly budget is the primary lever for controlling spend
- Budget increases are conservative: 5-10% monthly increases (not aggressive jumps)
Budget Philosophy Hierarchy:
- #1 Priority: Hit monthly spend targets (pacing within tolerance)
- #2 Priority: Maintain acceptable CPA/ROAS goals
- Algorithm safety: Avoid shocking smart bidding with large changes
Why Conservative Increases (5-10%)?
- Smart bidding algorithms need 3-7 days to ramp up after budget changes
- Large budget jumps risk CPA spikes during adjustment period
- Multiple small increases > one large increase (safer, more controllable)
- Client trust requires predictable, controlled spend changes
Pacing Calculation (Reference)
Data Source: Pacing Dashboard sheet (auto-calculated daily)
Formula:
Pacing Variance = % Through Month - % Spent
Where:
- % Through Month = (Current Day ÷ Days in Month) × 100
- % Spent = (MTD Spend ÷ Monthly Budget) × 100
Example:
- Day 21 of 31 → % Through Month = 67.74%
- MTD Spend: $513 / Monthly Budget: $1,000 → % Spent = 51.30%
- Pacing Variance: 67.74% - 51.30% = +16.44% (UNDERSPENDING)
Interpretation:
- Positive variance (+X%): UNDERSPENDING (spent less than expected by now)
- Negative variance (-X%): OVERSPENDING (spent more than expected by now)
- Zero variance (0%): PERFECT PACING (spent exactly as expected)
IMPORTANT: This calculation is already done in Pacing Dashboard sheet (Column E). You don't need to recalculate it manually - just reference the sheet value.
Related Documentation
- Your own portfolio context files — strategic context (names, pacing rules, client KPIs)
- Your own accounts map — account name → CID → portfolio mapping
- Your own dashboard/sheet config — tab schemas for pacing data
Created: 2025-10-28
Last Updated: 2025-11-01
Extracted From: portfolio context files (Section II + III), underspending-investigation-agent.md
Status: Active