Skip to main content

get_plan_audit_logs

Retrieve governance state and audit trail for a plan, multiple plans, or an entire portfolio. Returns budget tracking, validation history, and compliance summary.

Request

{
  "tool": "get_plan_audit_logs",
  "arguments": {
    "plan_ids": ["plan_q1_2026_launch"],
    "include_entries": true
  }
}
Results are grouped by media_buy_id within each plan. Multiple plans — retrieve specific plans in one call:
{
  "tool": "get_plan_audit_logs",
  "arguments": {
    "plan_ids": ["plan_q1_2026_launch", "plan_q1_2026_emea"],
    "include_entries": false
  }
}
Portfolio query — retrieve combined audit data for all member plans in one or more portfolios:
{
  "tool": "get_plan_audit_logs",
  "arguments": {
    "portfolio_plan_ids": ["portfolio_nova_brands_2026"],
    "include_entries": true
  }
}
You can combine plan_ids and portfolio_plan_ids to query both specific plans and portfolios in a single call.

Response

{
  "plans": [
    {
      "plan_id": "plan_q1_2026_launch",
      "plan_version": 1,
      "status": "active",
      "budget": {
        "authorized": 500000,
        "committed": 425000,
        "remaining": 75000,
        "utilization_pct": 85
      },
      "channel_allocation": {
        "olv": { "committed": 275000, "pct": 55 },
        "display": { "committed": 150000, "pct": 30 }
      },
      "media_buys": [
        {
          "media_buy_id": "mb_seller_456",
          "status": "active",
          "committed": 275000,
          "check_count": 8
        },
        {
          "media_buy_id": "mb_seller_789",
          "status": "active",
          "committed": 150000,
          "check_count": 7
        }
      ],
      "summary": {
        "checks_performed": 15,
        "outcomes_reported": 12,
        "statuses": {
          "approved": 12,
          "denied": 1,
          "conditions": 1,
          "human_reviewed": 1  // supplementary: subset of approved + denied that went through internal human review
        },
        "findings_count": 2,
        "human_reviews": [
          {
            "check_id": "chk_esc_001",
            "reason": "Budget reallocation exceeds threshold",
            "resolution": "approved_by_human",
            "resolved_at": "2026-03-16T09:30:00Z"
          }
        ],
        "drift_metrics": {
          "human_review_rate": 0.07,
          "human_review_rate_trend": "stable",
          "auto_approval_rate": 0.80,
          "human_override_rate": 0.02,
          "mean_confidence": 0.88,
          "thresholds": {
            "human_review_rate_min": 0.02,
            "auto_approval_rate_max": 0.95,
            "human_override_rate_max": 0.15
          }
        }
      },
      "entries": [
        {
          "id": "chk_001",
          "type": "check",
          "timestamp": "2026-03-10T10:05:00Z",
          "caller": "https://orchestrator.pinnacle-media.com/agent",
          "tool": "get_products",
          "check_type": "intent",
          "status": "approved",
          "explanation": "Product discovery within budget and channel constraints.",
          "categories_evaluated": ["budget_authority", "strategic_alignment"],
          "policies_evaluated": ["us_coppa"]
        },
        {
          "id": "chk_003",
          "type": "check",
          "timestamp": "2026-03-15T11:05:00Z",
          "caller": "https://ads.seller-example.com/adcp",
          "tool": "create_media_buy",
          "check_type": "execution",
          "status": "approved",
          "explanation": "Media buy within plan budget ($150,000 of $500,000 remaining). Geo targeting matches authorized markets. COPPA compliance verified.",
          "categories_evaluated": ["budget_authority", "regulatory_compliance", "brand_policy"],
          "policies_evaluated": ["us_coppa", "alcohol_advertising"],
          "findings": [
            {
              "category_id": "budget_authority",
              "severity": "info",
              "explanation": "Budget utilization at 70% after this buy."
            }
          ]
        },
        {
          "id": "out_001",
          "type": "outcome",
          "timestamp": "2026-03-15T11:10:00Z",
          "caller": "https://orchestrator.pinnacle-media.com/agent",
          "outcome": "completed",
          "committed_budget": 150000
        },
        {
          "id": "out_del_001",
          "type": "outcome",
          "timestamp": "2026-03-22T00:00:00Z",
          "caller": "https://ads.seller-example.com/adcp",
          "outcome": "delivery",
          "media_buy_id": "mb_seller_456",
          "outcome_status": "accepted"
        }
      ]
    }
  ]
}

Fields

Request

FieldTypeRequiredDescription
plan_idsstring[]At least one of plan_ids or portfolio_plan_idsPlan IDs to retrieve.
portfolio_plan_idsstring[]At least one of plan_ids or portfolio_plan_idsPortfolio plan IDs. Expanded to member plans.
include_entriesbooleanNoInclude the full audit trail. Default: false.

Response

FieldTypeDescription
plansarrayAudit data for each requested plan.
plans[].plan_idstringPlan identifier.
plans[].plan_versionnumberCurrent plan version.
plans[].statusenumactive, suspended, or completed.
plans[].budgetobjectBudget state.
plans[].budget.authorizednumberTotal authorized budget from the plan.
plans[].budget.committednumberTotal budget committed from confirmed outcomes.
plans[].budget.remainingnumberAuthorized minus committed.
plans[].budget.utilization_pctnumberCommitted as a percentage of authorized.
plans[].channel_allocationobjectCurrent channel mix. Keyed by channel ID.
plans[].channel_allocation[channel].committednumberBudget committed to this channel.
plans[].channel_allocation[channel].pctnumberChannel’s share of the authorized total budget.
plans[].media_buysarrayPer-media-buy breakdown.
plans[].media_buys[].media_buy_idstringSeller-assigned media buy identifier.
plans[].media_buys[].statusenumactive, suspended, or completed.
plans[].media_buys[].committednumberBudget committed for this media buy.
plans[].media_buys[].check_countintegerNumber of governance checks performed.
plans[].summaryobjectAggregate validation and outcome statistics.
plans[].summary.checks_performednumberTotal governance checks performed.
plans[].summary.outcomes_reportednumberTotal outcomes reported.
plans[].summary.statusesobjectCount of each governance check status (approved, denied, conditions). Also includes human_reviewed as a supplementary count — a subset of approved + denied that went through internal human review before resolving.
plans[].summary.findings_countnumberTotal findings across all checks and outcomes.
plans[].summary.human_reviewsarrayChecks that required internal human review and their resolutions.
plans[].summary.human_reviews[].check_idstringThe governance check that required human review.
plans[].summary.human_reviews[].reasonstringWhy human review was required.
plans[].summary.human_reviews[].resolutionstringHow it was resolved (e.g., approved_by_human, rejected_by_human).
plans[].summary.human_reviews[].resolved_atstringISO 8601 resolution timestamp.
plans[].summary.drift_metricsobjectAggregate governance metrics for detecting oversight drift. See specification.
plans[].summary.drift_metrics.human_review_ratenumberFraction of checks that required internal human review (0-1).
plans[].summary.drift_metrics.human_review_rate_trendenumincreasing, stable, or declining.
plans[].summary.drift_metrics.auto_approval_ratenumberFraction of checks approved without human intervention (0-1).
plans[].summary.drift_metrics.human_override_ratenumberFraction of human reviews where the human overrode the agent (0-1).
plans[].summary.drift_metrics.mean_confidencenumberAverage confidence score across findings (0-1). Present when findings include confidence.
plans[].summary.drift_metrics.thresholdsobjectOrganization-defined thresholds for drift metrics. When a metric crosses its threshold, the governance agent includes a finding.
plans[].summary.drift_metrics.thresholds.human_review_rate_maxnumberMaximum acceptable human review rate.
plans[].summary.drift_metrics.thresholds.human_review_rate_minnumberMinimum acceptable human review rate. A rate below this may indicate eroding oversight.
plans[].summary.drift_metrics.thresholds.auto_approval_rate_maxnumberMaximum acceptable auto-approval rate.
plans[].summary.drift_metrics.thresholds.human_override_rate_maxnumberMaximum acceptable human override rate.
plans[].entriesarrayOrdered audit trail (only when include_entries is true).
plans[].entries[].idstringEntry identifier.
plans[].entries[].typeenumcheck or outcome.
plans[].entries[].timestampstringISO 8601 timestamp.
plans[].entries[].plan_idstringPlan this entry belongs to. Present when querying multiple plans or a portfolio.
plans[].entries[].callerstringURL of the agent that made the request. Resolved from the credentials used on the governance callback.
plans[].entries[].toolstringThe AdCP tool (present for check entries).
plans[].entries[].statusenumGovernance check status (present for check entries).
plans[].entries[].check_typeenumintent or execution (present for check entries). Inferred from the fields present on the original check request.
plans[].entries[].explanationstringHuman-readable explanation of the governance decision (present for check entries).
plans[].entries[].policies_evaluatedarrayRegistry policy IDs evaluated during this check.
plans[].entries[].categories_evaluatedarrayGovernance categories evaluated (e.g., budget_authority, regulatory_compliance).
plans[].entries[].findingsarrayFindings from this check, including category, severity, policy ID, explanation, and confidence.
plans[].entries[].outcomeenumOutcome type (present for outcome entries).
plans[].entries[].committed_budgetnumberBudget committed (present for completed outcome entries).
plans[].entries[].media_buy_idstringMedia buy ID (present for delivery outcome entries).
plans[].entries[].outcome_statusstringOutcome status (present for outcome entries).

Error codes

CodeRecoveryDescription
PLAN_NOT_FOUNDcorrectableNo plan with this ID.